Reverted r245 changeset which added audio driver2 support to DirectSound driver, since it wasn't implemented properly (fluid_audio_callback_t != fluid_audio_func_t).

This commit is contained in:
Josh Green 2009-10-28 06:16:12 +00:00
parent 50f185a143
commit 6b92375195
2 changed files with 11 additions and 14 deletions

View file

@ -77,8 +77,6 @@ void fluid_core_audio_driver_settings(fluid_settings_t* settings);
#if DSOUND_SUPPORT
fluid_audio_driver_t* new_fluid_dsound_audio_driver(fluid_settings_t* settings,
fluid_synth_t* synth);
fluid_audio_driver_t* new_fluid_dsound_audio_driver2(fluid_settings_t* settings,
fluid_audio_func_t func, void* data);
int delete_fluid_dsound_audio_driver(fluid_audio_driver_t* p);
void fluid_dsound_audio_driver_settings(fluid_settings_t* settings);
#endif
@ -160,7 +158,7 @@ fluid_audriver_definition_t fluid_audio_drivers[] = {
#if DSOUND_SUPPORT
{ "dsound",
new_fluid_dsound_audio_driver,
new_fluid_dsound_audio_driver2,
NULL,
delete_fluid_dsound_audio_driver,
fluid_dsound_audio_driver_settings },
#endif

View file

@ -49,7 +49,7 @@ typedef struct {
WAVEFORMATEX* format;
HANDLE thread;
DWORD threadID;
void* user_obj;
fluid_synth_t* synth;
fluid_audio_callback_t write;
int cont;
DWORD buffer_byte_size;
@ -93,8 +93,12 @@ void fluid_dsound_audio_driver_settings(fluid_settings_t* settings)
DirectSoundEnumerate((LPDSENUMCALLBACK) fluid_dsound_enum_callback, settings);
}
/*
* new_fluid_dsound_audio_driver
*/
fluid_audio_driver_t*
new_fluid_dsound_audio_driver2(fluid_settings_t* settings, fluid_audio_func_t func, void* data)
new_fluid_dsound_audio_driver(fluid_settings_t* settings, fluid_synth_t* synth)
{
HRESULT hr;
DSBUFFERDESC desc;
@ -128,7 +132,7 @@ new_fluid_dsound_audio_driver2(fluid_settings_t* settings, fluid_audio_func_t fu
}
FLUID_MEMSET(dev, 0, sizeof(fluid_dsound_audio_driver_t));
dev->user_obj = data;
dev->synth = synth;
dev->cont = 1;
fluid_settings_getnum(settings, "synth.sample-rate", &sample_rate);
@ -144,7 +148,7 @@ new_fluid_dsound_audio_driver2(fluid_settings_t* settings, fluid_audio_func_t fu
dev->frame_size = 2 * sizeof(short);
dev->buffer_byte_size = period_size * dev->frame_size;
dev->queue_byte_size = periods * dev->buffer_byte_size;
dev->write = func;
dev->write = fluid_synth_write_s16;
/* create and initialize the buffer format */
dev->format = (WAVEFORMATEX*) FLUID_MALLOC(sizeof(WAVEFORMATEX));
@ -265,11 +269,6 @@ new_fluid_dsound_audio_driver2(fluid_settings_t* settings, fluid_audio_func_t fu
return NULL;
}
fluid_audio_driver_t*
new_fluid_dsound_audio_driver(fluid_settings_t* settings, fluid_synth_t* synth)
{
return new_fluid_dsound_audio_driver2(settings, (fluid_audio_func_t)fluid_synth_write_s16, synth);
}
int delete_fluid_dsound_audio_driver(fluid_audio_driver_t* d)
{
@ -355,14 +354,14 @@ DWORD WINAPI fluid_dsound_audio_run(LPVOID lpParameter)
/* fill the first part of the buffer */
if (bytes1 > 0) {
frames = bytes1 / dev->frame_size;
dev->write(dev->user_obj, frames, buf1, 0, 2, buf1, 1, 2);
dev->write(dev->synth, frames, buf1, 0, 2, buf1, 1, 2);
cur_position += frames * dev->frame_size;
}
/* fill the second part of the buffer */
if ((buf2 != NULL) && (bytes2 > 0)) {
frames = bytes2 / dev->frame_size;
dev->write(dev->user_obj, frames, buf2, 0, 2, buf2, 1, 2);
dev->write(dev->synth, frames, buf2, 0, 2, buf2, 1, 2);
cur_position += frames * dev->frame_size;
}