libfluidsynth  1.1.11
fluidsynth_register_adriver.c

Example of how to register audio drivers using fluid_audio_driver_register() (advanced users only)

#include <stdio.h>
#include <fluidsynth.h>
int main()
{
const char* DRV[] = { "alsa", "jack", "portaudio" };
const char* adrivers[2];
for(int i=0; i<sizeof(DRV)/sizeof(DRV[0]); i++)
{
adrivers[0] = DRV[i];
/* register any other driver you need
*
* adrivers[X] = "whatever";
*/
adrivers[1] = NULL; /* NULL terminate the array */
/* register those audio drivers. Note that at this time no fluidsynth objects are alive! */
int res = fluid_audio_driver_register(adrivers);
if(res != FLUID_OK)
{
puts("adriver reg err");
return -1;
}
res = fluid_settings_setstr(settings, "audio.driver", DRV[i]);
/* settings API will be refactored to return FLUID_OK|FAILED next major release
* returning TRUE or FALSE is deprecated
*/
#if FLUIDSYNTH_VERSION_MAJOR >= 2
if(res != FLUID_OK)
#else
if(res == 0)
#endif
{
puts("audio.driver set err");
return -1;
}
fluid_synth_t* synth = new_fluid_synth(settings);
/*
* ~~~ Do your daily business here ~~~
*/
/* everything cleaned up, fluid_audio_driver_register() can be called again if needed */
}
return 0;
}
delete_fluid_audio_driver
FLUIDSYNTH_API void delete_fluid_audio_driver(fluid_audio_driver_t *driver)
Deletes an audio driver instance.
Definition: fluid_adriver.c:403
fluid_audio_driver_t
struct _fluid_audio_driver_t fluid_audio_driver_t
Audio driver instance.
Definition: types.h:45
new_fluid_settings
FLUIDSYNTH_API fluid_settings_t * new_fluid_settings(void)
Create a new settings object.
Definition: fluid_settings.c:235
fluid_synth_t
struct _fluid_synth_t fluid_synth_t
Synthesizer instance.
Definition: types.h:37
new_fluid_audio_driver
FLUIDSYNTH_API fluid_audio_driver_t * new_fluid_audio_driver(fluid_settings_t *settings, fluid_synth_t *synth)
Create a new audio driver.
Definition: fluid_adriver.c:344
fluid_settings_t
struct _fluid_hashtable_t fluid_settings_t
Configuration settings instance.
Definition: types.h:36
fluid_audio_driver_register
FLUIDSYNTH_API int fluid_audio_driver_register(const char **adrivers)
Registers audio drivers to use.
Definition: fluid_adriver.c:441
FLUID_OK
#define FLUID_OK
Value that indicates success, used by most libfluidsynth functions.
Definition: misc.h:52
delete_fluid_settings
FLUIDSYNTH_API void delete_fluid_settings(fluid_settings_t *settings)
Delete the provided settings object.
Definition: fluid_settings.c:254
fluid_settings_setstr
FLUIDSYNTH_API int fluid_settings_setstr(fluid_settings_t *settings, const char *name, const char *str)
Set a string value for a named setting.
Definition: fluid_settings.c:684
new_fluid_synth
FLUIDSYNTH_API fluid_synth_t * new_fluid_synth(fluid_settings_t *settings)
Create new FluidSynth instance.
Definition: fluid_synth.c:550
delete_fluid_synth
FLUIDSYNTH_API int delete_fluid_synth(fluid_synth_t *synth)
Delete a FluidSynth instance.
Definition: fluid_synth.c:779

Generated for libfluidsynth by doxygen 1.8.17