summaryrefslogtreecommitdiff
path: root/emu/port/audio.h
diff options
context:
space:
mode:
Diffstat (limited to 'emu/port/audio.h')
-rw-r--r--emu/port/audio.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/emu/port/audio.h b/emu/port/audio.h
new file mode 100644
index 00000000..5846cda8
--- /dev/null
+++ b/emu/port/audio.h
@@ -0,0 +1,81 @@
+#define AUDIO_BITS_FLAG 0x00000001
+#define AUDIO_BUF_FLAG 0x00000002
+#define AUDIO_CHAN_FLAG 0x00000004
+#define AUDIO_COUNT_FLAG 0x00000008
+#define AUDIO_DEV_FLAG 0x00000010
+#define AUDIO_ENC_FLAG 0x00000020
+#define AUDIO_RATE_FLAG 0x00000040
+#define AUDIO_VOL_FLAG 0x00000080
+#define AUDIO_LEFT_FLAG 0x00000100
+#define AUDIO_RIGHT_FLAG 0x00000200
+#define AUDIO_IN_FLAG 0x00000400
+#define AUDIO_OUT_FLAG 0x00000800
+#define AUDIO_MOD_FLAG 0x10000000
+
+#define Audio_Min_Val 0
+#define Audio_Max_Val 100
+
+#define Audio_No_Val 0
+#define Audio_In_Val 1
+#define Audio_Out_Val 2
+
+#define Audio_Max_Buf 32768
+#define Bits_Per_Byte 8
+
+typedef struct Audio_d Audio_d;
+struct Audio_d {
+ ulong flags; /* bit flag for fields */
+ ulong bits; /* bits per sample */
+ ulong buf; /* buffer size */
+ ulong chan; /* number of channels */
+ ulong dev; /* device */
+ ulong enc; /* encoding format */
+ ulong rate; /* samples per second */
+ ulong left; /* left channel gain */
+ ulong right; /* right channel gain */
+};
+
+typedef struct Audio_t Audio_t;
+struct Audio_t {
+ Audio_d in; /* input device */
+ Audio_d out; /* output device */
+};
+
+#define AUDIO_CMD_MAXNUM 32
+
+void audio_info_init(Audio_t*);
+int audioparse(char*, int n, Audio_t*);
+
+enum
+{
+ Qdir = 0, /* must start at 0 representing a directory */
+ Qaudio,
+ Qaudioctl
+};
+
+/* required external platform specific functions */
+void audio_file_init(void);
+void audio_file_open(Chan*, int);
+long audio_file_read(Chan*, void*, long, vlong);
+long audio_file_write(Chan*, void*, long, vlong);
+long audio_ctl_write(Chan*, void*, long, vlong);
+void audio_file_close(Chan*);
+
+typedef struct _svp_t {
+ char* s; /* string */
+ unsigned long v; /* value */
+} svp_t;
+
+/* string value pairs for default audio values */
+extern svp_t audio_chan_tbl[];
+extern svp_t audio_indev_tbl[];
+extern svp_t audio_outdev_tbl[];
+extern svp_t audio_enc_tbl[];
+extern svp_t audio_rate_tbl[];
+extern svp_t audio_val_tbl[];
+extern svp_t audio_bits_tbl[];
+
+extern Audio_d Default_Audio_Format;
+extern int Default_Audio_Input, Default_Audio_Output;
+
+extern Audio_t* getaudiodev(void);