53 lines
1.1 KiB
C
53 lines
1.1 KiB
C
/* Copyright 1996 by Abacus Research and
|
|
* Development, Inc. All rights reserved.
|
|
*/
|
|
|
|
#if !defined (OMIT_RCSID_STRINGS)
|
|
char ROMlib_rcsid_sounddriver[] =
|
|
"$Id: sounddriver.c 63 2004-12-24 18:19:43Z ctm $";
|
|
#endif
|
|
|
|
#include "rsys/common.h"
|
|
#include "rsys/sounddriver.h"
|
|
#include "rsys/soundfake.h"
|
|
|
|
/* This is the current sound driver. */
|
|
sound_driver_t sound_driver;
|
|
|
|
typedef boolean_t (*sound_init_func) (sound_driver_t *);
|
|
|
|
static sound_init_func sound_driver_init_funcs[] =
|
|
{
|
|
#if defined (SOUND_SDL)
|
|
sound_sdl_init,
|
|
#endif
|
|
|
|
#if defined (SOUND_LINUX)
|
|
sound_linux_init,
|
|
#endif
|
|
|
|
#if defined (SOUND_DJGPP)
|
|
sound_djgpp_init,
|
|
#endif
|
|
|
|
/* This should always initialize successfully. */
|
|
sound_fake_init,
|
|
};
|
|
|
|
|
|
void
|
|
sound_init (void)
|
|
{
|
|
boolean_t found_one_p;
|
|
int i;
|
|
|
|
/* Try all available sound drivers and keep the first one that works. */
|
|
found_one_p = FALSE;
|
|
for (i = 0; !found_one_p && i < (int) NELEM (sound_driver_init_funcs); i++)
|
|
if ((sound_driver_init_funcs[i]) (&sound_driver))
|
|
found_one_p = TRUE;
|
|
|
|
/* At least the fake sound driver must always match! */
|
|
gui_assert (found_one_p);
|
|
}
|