mirror of
https://github.com/libretro/RetroArch
synced 2025-04-07 13:23:32 +00:00
Add write_avail/buffer_size for XAudio.
This commit is contained in:
parent
438ac4ca4b
commit
a6a068e09e
@ -24,6 +24,7 @@ typedef struct
|
|||||||
{
|
{
|
||||||
xaudio2_t *xa;
|
xaudio2_t *xa;
|
||||||
bool nonblock;
|
bool nonblock;
|
||||||
|
size_t bufsize;
|
||||||
} xa_t;
|
} xa_t;
|
||||||
|
|
||||||
static void *xa_init(const char *device, unsigned rate, unsigned latency)
|
static void *xa_init(const char *device, unsigned rate, unsigned latency)
|
||||||
@ -39,7 +40,9 @@ static void *xa_init(const char *device, unsigned rate, unsigned latency)
|
|||||||
|
|
||||||
SSNES_LOG("XAudio2: Requesting %d ms latency, using %d ms latency.\n", latency, (int)bufsize * 1000 / rate);
|
SSNES_LOG("XAudio2: Requesting %d ms latency, using %d ms latency.\n", latency, (int)bufsize * 1000 / rate);
|
||||||
|
|
||||||
xa->xa = xaudio2_new(rate, 2, bufsize * 2 * sizeof(float));
|
xa->bufsize = bufsize * 2 * sizeof(float);
|
||||||
|
|
||||||
|
xa->xa = xaudio2_new(rate, 2, xa->bufsize);
|
||||||
if (!xa->xa)
|
if (!xa->xa)
|
||||||
{
|
{
|
||||||
SSNES_ERR("Failed to init XAudio2.\n");
|
SSNES_ERR("Failed to init XAudio2.\n");
|
||||||
@ -103,6 +106,18 @@ static void xa_free(void *data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static size_t xa_write_avail(void *data)
|
||||||
|
{
|
||||||
|
xa_t *xa = (xa_t*)data;
|
||||||
|
return xaudio2_write_avail(xa->xa);
|
||||||
|
}
|
||||||
|
|
||||||
|
static size_t xa_buffer_size(void *data)
|
||||||
|
{
|
||||||
|
xa_t *xa = (xa_t*)data;
|
||||||
|
return xa->bufsize;
|
||||||
|
}
|
||||||
|
|
||||||
const audio_driver_t audio_xa = {
|
const audio_driver_t audio_xa = {
|
||||||
xa_init,
|
xa_init,
|
||||||
xa_write,
|
xa_write,
|
||||||
@ -111,5 +126,7 @@ const audio_driver_t audio_xa = {
|
|||||||
xa_set_nonblock_state,
|
xa_set_nonblock_state,
|
||||||
xa_free,
|
xa_free,
|
||||||
xa_use_float,
|
xa_use_float,
|
||||||
"xaudio"
|
"xaudio",
|
||||||
|
xa_write_avail,
|
||||||
|
xa_buffer_size,
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user