projects
/
dos_auplay
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ui cleanup
[dos_auplay]
/
src
/
audio.c
diff --git
a/src/audio.c
b/src/audio.c
index
88b8400
..
0e16101
100644
(file)
--- a/
src/audio.c
+++ b/
src/audio.c
@@
-1,36
+1,24
@@
#include <stdio.h>
\r
#include "audio.h"
\r
#include <stdio.h>
\r
#include "audio.h"
\r
-#include "au_sb.h"
\r
-
\r
-struct audrv {
\r
- void *(*get_buffer)(int *size);
\r
- void (*start)(int rate, int bits, int nchan);
\r
- void (*pause)(void);
\r
- void (*cont)(void);
\r
- void (*stop)(void);
\r
- void (*volume)(int vol);
\r
- int (*isplaying)(void);
\r
-};
\r
+#include "audrv.h"
\r
\r
static struct audrv drv;
\r
\r
static audio_callback_func cbfunc;
\r
static void *cbcls;
\r
\r
\r
static struct audrv drv;
\r
\r
static audio_callback_func cbfunc;
\r
static void *cbcls;
\r
\r
-void audio_init(void)
\r
+/* driver detect/init functions are defined in their respective source files */
\r
+int sb_detect(struct audrv *drv);
\r
+
\r
+
\r
+int audio_init(void)
\r
{
\r
{
\r
- if(sb_detect()) {
\r
- drv.get_buffer = sb_buffer;
\r
- drv.start = sb_start;
\r
- drv.pause = sb_pause;
\r
- drv.cont = sb_continue;
\r
- drv.stop = sb_stop;
\r
- drv.volume = sb_volume;
\r
- drv.isplaying = sb_isplaying;
\r
- return;
\r
+ if(sb_detect(&drv)) {
\r
+ return 0;
\r
}
\r
\r
}
\r
\r
- printf("No supported audio device detected\n");
\r
+ fprintf(stderr, "No supported audio device detected\n");
\r
+ return -1;
\r
}
\r
\r
void audio_set_callback(audio_callback_func func, void *cls)
\r
}
\r
\r
void audio_set_callback(audio_callback_func func, void *cls)
\r
@@
-49,6
+37,7
@@
int audio_callback(void *buf, int sz)
\r
void audio_play(int rate, int bits, int nchan)
\r
{
\r
\r
void audio_play(int rate, int bits, int nchan)
\r
{
\r
+ printf("play %d samples/s, %d bits, %s\n", rate, bits, nchan == 1 ? "mono" : "stereo");
\r
drv.start(rate, bits, nchan);
\r
}
\r
\r
drv.start(rate, bits, nchan);
\r
}
\r
\r
@@
-67,9
+56,14
@@
void audio_stop(void)
drv.stop();
\r
}
\r
\r
drv.stop();
\r
}
\r
\r
-void audio_volume(int vol)
\r
+void audio_setvolume(int ctl, int vol)
\r
+{
\r
+ drv.setvolume(ctl, vol);
\r
+}
\r
+
\r
+int audio_getvolume(int ctl)
\r
{
\r
{
\r
- drv.volume(vol);
\r
+ return drv.getvolume(ctl);
\r
}
\r
\r
int audio_isplaying(void)
\r
}
\r
\r
int audio_isplaying(void)
\r