executor/src/sounddriver.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);
}