psx_gpu: minor test fixes
[pcsx_rearmed.git] / plugins / dfsound / out.c
... / ...
CommitLineData
1#include <stdio.h>
2#include <stdlib.h>
3#include "out.h"
4
5#define MAX_OUT_DRIVERS 5
6
7static struct out_driver out_drivers[MAX_OUT_DRIVERS];
8struct out_driver *out_current;
9static int driver_count;
10
11#define REGISTER_DRIVER(d) { \
12 extern void out_register_##d(struct out_driver *drv); \
13 out_register_##d(&out_drivers[driver_count++]); \
14}
15
16void SetupSound(void)
17{
18 int i;
19
20 if (driver_count == 0) {
21#ifdef HAVE_OSS
22 REGISTER_DRIVER(oss);
23#endif
24#ifdef HAVE_ALSA
25 REGISTER_DRIVER(alsa);
26#endif
27#ifdef HAVE_SDL
28 REGISTER_DRIVER(sdl);
29#endif
30#ifdef HAVE_PULSE
31 REGISTER_DRIVER(pulse);
32#endif
33#ifdef HAVE_LIBRETRO
34 REGISTER_DRIVER(libretro);
35#endif
36 REGISTER_DRIVER(none);
37 }
38
39 for (i = 0; i < driver_count; i++)
40 if (out_drivers[i].init() == 0)
41 break;
42
43 if (i < 0 || i >= driver_count) {
44 printf("the impossible happened\n");
45 abort();
46 }
47
48 out_current = &out_drivers[i];
49 printf("selected sound output driver: %s\n", out_current->name);
50}
51