6 void *(*get_buffer)(int *size);
\r
7 void (*start)(int rate, int bits, int nchan);
\r
11 void (*volume)(int vol);
\r
12 int (*isplaying)(void);
\r
15 static struct audrv drv;
\r
17 static audio_callback_func cbfunc;
\r
20 int audio_init(void)
\r
23 drv.get_buffer = sb_buffer;
\r
24 drv.start = sb_start;
\r
25 drv.pause = sb_pause;
\r
26 drv.cont = sb_continue;
\r
28 drv.volume = sb_volume;
\r
29 drv.isplaying = sb_isplaying;
\r
33 fprintf(stderr, "No supported audio device detected\n");
\r
37 void audio_set_callback(audio_callback_func func, void *cls)
\r
43 int audio_callback(void *buf, int sz)
\r
48 return cbfunc(buf, sz, cbcls);
\r
51 void audio_play(int rate, int bits, int nchan)
\r
53 printf("play %d samples/s, %d bits, %s\n", rate, bits, nchan == 1 ? "mono" : "stereo");
\r
54 drv.start(rate, bits, nchan);
\r
57 void audio_pause(void)
\r
62 void audio_resume(void)
\r
67 void audio_stop(void)
\r
72 void audio_volume(int vol)
\r
77 int audio_isplaying(void)
\r
79 return drv.isplaying();
\r