summaryrefslogtreecommitdiffstats
path: root/libao2/audio_out.h
diff options
context:
space:
mode:
Diffstat (limited to 'libao2/audio_out.h')
-rw-r--r--libao2/audio_out.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/libao2/audio_out.h b/libao2/audio_out.h
new file mode 100644
index 0000000000..cdd58dc7d4
--- /dev/null
+++ b/libao2/audio_out.h
@@ -0,0 +1,68 @@
+
+typedef struct ao_info_s
+{
+ /* driver name ("Matrox Millennium G200/G400" */
+ const char *name;
+ /* short name (for config strings) ("mga") */
+ const char *short_name;
+ /* author ("Aaron Holtzman <aholtzma@ess.engr.uvic.ca>") */
+ const char *author;
+ /* any additional comments */
+ const char *comment;
+} ao_info_t;
+
+typedef struct ao_functions_s {
+
+ ao_info_t *info;
+
+ /*
+ */
+ int (*control)(int cmd,int arg);
+
+ /*
+ */
+ int (*init)(int rate,int channels,int format,int flags);
+
+ /*
+ */
+ void (*uninit)();
+
+ /*
+ */
+ void (*reset)();
+
+ /*
+ */
+ int (*get_space)();
+
+ /*
+ */
+ int (*play)(void* data,int len,int flags);
+
+ /*
+ */
+ int (*get_delay)();
+
+} ao_functions_t;
+
+// NULL terminated array of all drivers
+extern ao_functions_t* audio_out_drivers[];
+
+extern int ao_samplerate;
+extern int ao_channels;
+extern int ao_format;
+extern int ao_bps;
+extern int ao_outburst;
+extern int ao_buffersize;
+
+#define CONTROL_OK 1
+#define CONTROL_TRUE 1
+#define CONTROL_FALSE 0
+#define CONTROL_UNKNOWN -1
+#define CONTROL_ERROR -2
+#define CONTROL_NA -3
+
+#define AOCONTROL_SET_DEVICE 1
+#define AOCONTROL_QUERY_FORMAT 2
+
+