(Audio) Implement missing use_float function for audio drivers

This commit is contained in:
twinaphex 2014-09-09 21:42:10 +02:00
parent 492af587ef
commit 8df3a51790
8 changed files with 74 additions and 32 deletions

View File

@ -451,6 +451,12 @@ static size_t dsound_buffer_size(void *data)
return 4 * 1024;
}
static bool dsound_use_float(void *data)
{
(void)data;
return false;
}
const audio_driver_t audio_dsound = {
dsound_init,
dsound_write,
@ -458,7 +464,7 @@ const audio_driver_t audio_dsound = {
dsound_start,
dsound_set_nonblock_state,
dsound_free,
NULL,
dsound_use_float,
"dsound",
dsound_write_avail,
dsound_buffer_size,

View File

@ -233,6 +233,12 @@ static size_t al_buffer_size(void *data)
return (al->num_buffers + 1) * BUFSIZE; // Also got tmpbuf.
}
static bool al_use_float(void *data)
{
(void)data;
return false;
}
const audio_driver_t audio_openal = {
al_init,
al_write,
@ -240,7 +246,7 @@ const audio_driver_t audio_openal = {
al_start,
al_set_nonblock_state,
al_free,
NULL,
al_use_float,
"openal",
al_write_avail,
al_buffer_size,

View File

@ -181,6 +181,12 @@ static size_t oss_buffer_size(void *data)
return info.fragsize * info.fragstotal;
}
static bool oss_use_float(void *data)
{
(void)data;
return false;
}
const audio_driver_t audio_oss = {
oss_init,
oss_write,
@ -188,7 +194,7 @@ const audio_driver_t audio_oss = {
oss_start,
oss_set_nonblock_state,
oss_free,
NULL,
oss_use_float,
"oss",
oss_write_avail,
oss_buffer_size,

View File

@ -103,6 +103,12 @@ static void ra_free(void *data)
free(data);
}
static bool ra_use_float(void *data)
{
alsa_t *alsa = (alsa_t*)data;
return false;
}
const audio_driver_t audio_roar = {
ra_init,
ra_write,
@ -110,7 +116,6 @@ const audio_driver_t audio_roar = {
ra_start,
ra_set_nonblock_state,
ra_free,
NULL,
ra_use_float,
"roar"
};

View File

@ -197,6 +197,12 @@ static size_t rs_buffer_size(void *data)
return 1024 * 4;
}
static bool rs_use_float(void *data)
{
alsa_t *alsa = (alsa_t*)data;
return false;
}
const audio_driver_t audio_rsound = {
rs_init,
rs_write,
@ -204,7 +210,7 @@ const audio_driver_t audio_rsound = {
rs_start,
rs_set_nonblock_state,
rs_free,
NULL,
rs_use_float,
"rsound",
rs_write_avail,
rs_buffer_size,

View File

@ -18,12 +18,12 @@
#include "../emscripten/RWebAudio.h"
static void ra_free(void *data)
static void rwebaudio_free(void *data)
{
RWebAudioFree();
}
static void *ra_init(const char *device, unsigned rate, unsigned latency)
static void *rwebaudio_init(const char *device, unsigned rate, unsigned latency)
{
(void)device;
(void)rate;
@ -33,58 +33,58 @@ static void *ra_init(const char *device, unsigned rate, unsigned latency)
return data;
}
static ssize_t ra_write(void *data, const void *buf, size_t size)
static ssize_t rwebaudio_write(void *data, const void *buf, size_t size)
{
(void)data;
return RWebAudioWrite(buf, size);
}
static bool ra_stop(void *data)
static bool rwebaudio_stop(void *data)
{
(void)data;
return RWebAudioStop();
}
static void ra_set_nonblock_state(void *data, bool state)
static void rwebaudio_set_nonblock_state(void *data, bool state)
{
(void)data;
RWebAudioSetNonblockState(state);
}
static bool ra_start(void *data)
static bool rwebaudio_start(void *data)
{
(void)data;
return RWebAudioStart();
}
static bool ra_use_float(void *data)
static bool rwebaudio_use_float(void *data)
{
(void)data;
return true;
}
static size_t ra_write_avail(void *data)
static size_t rwebaudio_write_avail(void *data)
{
(void)data;
return RWebAudioWriteAvail();
}
static size_t ra_buffer_size(void *data)
static size_t rwebaudio_buffer_size(void *data)
{
(void)data;
return RWebAudioBufferSize();
}
const audio_driver_t audio_rwebaudio = {
ra_init,
ra_write,
ra_stop,
ra_start,
ra_set_nonblock_state,
ra_free,
ra_use_float,
rwebaudio_init,
rwebaudio_write,
rwebaudio_stop,
rwebaudio_start,
rwebaudio_set_nonblock_state,
rwebaudio_free,
rwebaudio_use_float,
"rwebaudio",
ra_write_avail,
ra_buffer_size,
rwebaudio_write_avail,
rwebaudio_buffer_size,
};

View File

@ -190,6 +190,12 @@ static void sdl_audio_free(void *data)
free(sdl);
}
static bool sdl_use_float(void *data)
{
(void)data;
return false;
}
const audio_driver_t audio_sdl = {
sdl_audio_init,
sdl_audio_write,
@ -197,7 +203,7 @@ const audio_driver_t audio_sdl = {
sdl_audio_start,
sdl_audio_set_nonblock_state,
sdl_audio_free,
NULL,
sdl_use_float,
#ifdef HAVE_SDL2
"sdl2"
#else

View File

@ -105,13 +105,20 @@ static void xenon360_audio_free(void *data)
free(data);
}
static bool xenon360_use_float(void *data)
{
(void)data;
return false;
}
const audio_driver_t audio_xenon360 = {
.init = xenon360_audio_init,
.write = xenon360_audio_write,
.stop = xenon360_audio_stop,
.start = xenon360_audio_start,
.set_nonblock_state = xenon360_audio_set_nonblock_state,
.free = xenon360_audio_free,
.ident = "xenon360"
xenon360_audio_init,
xenon360_audio_write,
xenon360_audio_stop,
xenon360_audio_start,
xenon360_audio_set_nonblock_state,
xenon360_audio_free,
xenon360_use_float,
"xenon360"
};