1*8d67ca89SAndroid Build Coastguard Worker /* 2*8d67ca89SAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*8d67ca89SAndroid Build Coastguard Worker * 4*8d67ca89SAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*8d67ca89SAndroid Build Coastguard Worker * for more information. 6*8d67ca89SAndroid Build Coastguard Worker */ 7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPISOUNDCARD_H 8*8d67ca89SAndroid Build Coastguard Worker #define _UAPISOUNDCARD_H 9*8d67ca89SAndroid Build Coastguard Worker #define SOUND_VERSION 0x030802 10*8d67ca89SAndroid Build Coastguard Worker #define OPEN_SOUND_SYSTEM 11*8d67ca89SAndroid Build Coastguard Worker #include <linux/ioctl.h> 12*8d67ca89SAndroid Build Coastguard Worker #include <endian.h> 13*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_ADLIB 1 14*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_SB 2 15*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_PAS 3 16*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_GUS 4 17*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_MPU401 5 18*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_SB16 6 19*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_SB16MIDI 7 20*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_UART6850 8 21*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_GUS16 9 22*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_MSS 10 23*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_PSS 11 24*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_SSCAPE 12 25*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_PSS_MPU 13 26*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_PSS_MSS 14 27*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_SSCAPE_MSS 15 28*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_TRXPRO 16 29*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_TRXPRO_SB 17 30*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_TRXPRO_MPU 18 31*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_MAD16 19 32*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_MAD16_MPU 20 33*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_CS4232 21 34*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_CS4232_MPU 22 35*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_MAUI 23 36*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_PSEUDO_MSS 24 37*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_GUSPNP 25 38*8d67ca89SAndroid Build Coastguard Worker #define SNDCARD_UART401 26 39*8d67ca89SAndroid Build Coastguard Worker #ifndef _SIOWR 40*8d67ca89SAndroid Build Coastguard Worker #if defined(_IOWR) && (defined(_AIX) || !defined(sun) && !defined(sparc) && !defined(__sparc__) && !defined(__INCioctlh) && !defined(__Lynx__)) 41*8d67ca89SAndroid Build Coastguard Worker #define SIOCPARM_MASK IOCPARM_MASK 42*8d67ca89SAndroid Build Coastguard Worker #define SIOC_VOID IOC_VOID 43*8d67ca89SAndroid Build Coastguard Worker #define SIOC_OUT IOC_OUT 44*8d67ca89SAndroid Build Coastguard Worker #define SIOC_IN IOC_IN 45*8d67ca89SAndroid Build Coastguard Worker #define SIOC_INOUT IOC_INOUT 46*8d67ca89SAndroid Build Coastguard Worker #define _SIOC_SIZE _IOC_SIZE 47*8d67ca89SAndroid Build Coastguard Worker #define _SIOC_DIR _IOC_DIR 48*8d67ca89SAndroid Build Coastguard Worker #define _SIOC_NONE _IOC_NONE 49*8d67ca89SAndroid Build Coastguard Worker #define _SIOC_READ _IOC_READ 50*8d67ca89SAndroid Build Coastguard Worker #define _SIOC_WRITE _IOC_WRITE 51*8d67ca89SAndroid Build Coastguard Worker #define _SIO _IO 52*8d67ca89SAndroid Build Coastguard Worker #define _SIOR _IOR 53*8d67ca89SAndroid Build Coastguard Worker #define _SIOW _IOW 54*8d67ca89SAndroid Build Coastguard Worker #define _SIOWR _IOWR 55*8d67ca89SAndroid Build Coastguard Worker #else 56*8d67ca89SAndroid Build Coastguard Worker #define SIOCPARM_MASK 0x1fff 57*8d67ca89SAndroid Build Coastguard Worker #define SIOC_VOID 0x00000000 58*8d67ca89SAndroid Build Coastguard Worker #define SIOC_OUT 0x20000000 59*8d67ca89SAndroid Build Coastguard Worker #define SIOC_IN 0x40000000 60*8d67ca89SAndroid Build Coastguard Worker #define SIOC_INOUT (SIOC_IN | SIOC_OUT) 61*8d67ca89SAndroid Build Coastguard Worker #define _SIO(x,y) ((int) (SIOC_VOID | (x << 8) | y)) 62*8d67ca89SAndroid Build Coastguard Worker #define _SIOR(x,y,t) ((int) (SIOC_OUT | ((sizeof(t) & SIOCPARM_MASK) << 16) | (x << 8) | y)) 63*8d67ca89SAndroid Build Coastguard Worker #define _SIOW(x,y,t) ((int) (SIOC_IN | ((sizeof(t) & SIOCPARM_MASK) << 16) | (x << 8) | y)) 64*8d67ca89SAndroid Build Coastguard Worker #define _SIOWR(x,y,t) ((int) (SIOC_INOUT | ((sizeof(t) & SIOCPARM_MASK) << 16) | (x << 8) | y)) 65*8d67ca89SAndroid Build Coastguard Worker #define _SIOC_SIZE(x) ((x >> 16) & SIOCPARM_MASK) 66*8d67ca89SAndroid Build Coastguard Worker #define _SIOC_DIR(x) (x & 0xf0000000) 67*8d67ca89SAndroid Build Coastguard Worker #define _SIOC_NONE SIOC_VOID 68*8d67ca89SAndroid Build Coastguard Worker #define _SIOC_READ SIOC_OUT 69*8d67ca89SAndroid Build Coastguard Worker #define _SIOC_WRITE SIOC_IN 70*8d67ca89SAndroid Build Coastguard Worker #endif 71*8d67ca89SAndroid Build Coastguard Worker #endif 72*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SEQ_RESET _SIO('Q', 0) 73*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SEQ_SYNC _SIO('Q', 1) 74*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SYNTH_INFO _SIOWR('Q', 2, struct synth_info) 75*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SEQ_CTRLRATE _SIOWR('Q', 3, int) 76*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SEQ_GETOUTCOUNT _SIOR('Q', 4, int) 77*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SEQ_GETINCOUNT _SIOR('Q', 5, int) 78*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SEQ_PERCMODE _SIOW('Q', 6, int) 79*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_FM_LOAD_INSTR _SIOW('Q', 7, struct sbi_instrument) 80*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SEQ_TESTMIDI _SIOW('Q', 8, int) 81*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SEQ_RESETSAMPLES _SIOW('Q', 9, int) 82*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SEQ_NRSYNTHS _SIOR('Q', 10, int) 83*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SEQ_NRMIDIS _SIOR('Q', 11, int) 84*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_MIDI_INFO _SIOWR('Q', 12, struct midi_info) 85*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SEQ_THRESHOLD _SIOW('Q', 13, int) 86*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SYNTH_MEMAVL _SIOWR('Q', 14, int) 87*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_FM_4OP_ENABLE _SIOW('Q', 15, int) 88*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SEQ_PANIC _SIO('Q', 17) 89*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SEQ_OUTOFBAND _SIOW('Q', 18, struct seq_event_rec) 90*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SEQ_GETTIME _SIOR('Q', 19, int) 91*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SYNTH_ID _SIOWR('Q', 20, struct synth_info) 92*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SYNTH_CONTROL _SIOWR('Q', 21, struct synth_control) 93*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_SYNTH_REMOVESAMPLE _SIOWR('Q', 22, struct remove_sample) 94*8d67ca89SAndroid Build Coastguard Worker typedef struct synth_control { 95*8d67ca89SAndroid Build Coastguard Worker int devno; 96*8d67ca89SAndroid Build Coastguard Worker char data[4000]; 97*8d67ca89SAndroid Build Coastguard Worker } synth_control; 98*8d67ca89SAndroid Build Coastguard Worker typedef struct remove_sample { 99*8d67ca89SAndroid Build Coastguard Worker int devno; 100*8d67ca89SAndroid Build Coastguard Worker int bankno; 101*8d67ca89SAndroid Build Coastguard Worker int instrno; 102*8d67ca89SAndroid Build Coastguard Worker } remove_sample; 103*8d67ca89SAndroid Build Coastguard Worker typedef struct seq_event_rec { 104*8d67ca89SAndroid Build Coastguard Worker unsigned char arr[8]; 105*8d67ca89SAndroid Build Coastguard Worker } seq_event_rec; 106*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_TMR_TIMEBASE _SIOWR('T', 1, int) 107*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_TMR_START _SIO('T', 2) 108*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_TMR_STOP _SIO('T', 3) 109*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_TMR_CONTINUE _SIO('T', 4) 110*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_TMR_TEMPO _SIOWR('T', 5, int) 111*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_TMR_SOURCE _SIOWR('T', 6, int) 112*8d67ca89SAndroid Build Coastguard Worker #define TMR_INTERNAL 0x00000001 113*8d67ca89SAndroid Build Coastguard Worker #define TMR_EXTERNAL 0x00000002 114*8d67ca89SAndroid Build Coastguard Worker #define TMR_MODE_MIDI 0x00000010 115*8d67ca89SAndroid Build Coastguard Worker #define TMR_MODE_FSK 0x00000020 116*8d67ca89SAndroid Build Coastguard Worker #define TMR_MODE_CLS 0x00000040 117*8d67ca89SAndroid Build Coastguard Worker #define TMR_MODE_SMPTE 0x00000080 118*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_TMR_METRONOME _SIOW('T', 7, int) 119*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_TMR_SELECT _SIOW('T', 8, int) 120*8d67ca89SAndroid Build Coastguard Worker #define _LINUX_PATCHKEY_H_INDIRECT 121*8d67ca89SAndroid Build Coastguard Worker #include <linux/patchkey.h> 122*8d67ca89SAndroid Build Coastguard Worker #undef _LINUX_PATCHKEY_H_INDIRECT 123*8d67ca89SAndroid Build Coastguard Worker #ifdef __BYTE_ORDER 124*8d67ca89SAndroid Build Coastguard Worker #if __BYTE_ORDER == __BIG_ENDIAN 125*8d67ca89SAndroid Build Coastguard Worker #define AFMT_S16_NE AFMT_S16_BE 126*8d67ca89SAndroid Build Coastguard Worker #elif __BYTE_ORDER==__LITTLE_ENDIAN 127*8d67ca89SAndroid Build Coastguard Worker #define AFMT_S16_NE AFMT_S16_LE 128*8d67ca89SAndroid Build Coastguard Worker #else 129*8d67ca89SAndroid Build Coastguard Worker #error "could not determine byte order" 130*8d67ca89SAndroid Build Coastguard Worker #endif 131*8d67ca89SAndroid Build Coastguard Worker #endif 132*8d67ca89SAndroid Build Coastguard Worker struct patch_info { 133*8d67ca89SAndroid Build Coastguard Worker unsigned short key; 134*8d67ca89SAndroid Build Coastguard Worker #define WAVE_PATCH _PATCHKEY(0x04) 135*8d67ca89SAndroid Build Coastguard Worker #define GUS_PATCH WAVE_PATCH 136*8d67ca89SAndroid Build Coastguard Worker #define WAVEFRONT_PATCH _PATCHKEY(0x06) 137*8d67ca89SAndroid Build Coastguard Worker short device_no; 138*8d67ca89SAndroid Build Coastguard Worker short instr_no; 139*8d67ca89SAndroid Build Coastguard Worker unsigned int mode; 140*8d67ca89SAndroid Build Coastguard Worker #define WAVE_16_BITS 0x01 141*8d67ca89SAndroid Build Coastguard Worker #define WAVE_UNSIGNED 0x02 142*8d67ca89SAndroid Build Coastguard Worker #define WAVE_LOOPING 0x04 143*8d67ca89SAndroid Build Coastguard Worker #define WAVE_BIDIR_LOOP 0x08 144*8d67ca89SAndroid Build Coastguard Worker #define WAVE_LOOP_BACK 0x10 145*8d67ca89SAndroid Build Coastguard Worker #define WAVE_SUSTAIN_ON 0x20 146*8d67ca89SAndroid Build Coastguard Worker #define WAVE_ENVELOPES 0x40 147*8d67ca89SAndroid Build Coastguard Worker #define WAVE_FAST_RELEASE 0x80 148*8d67ca89SAndroid Build Coastguard Worker #define WAVE_VIBRATO 0x00010000 149*8d67ca89SAndroid Build Coastguard Worker #define WAVE_TREMOLO 0x00020000 150*8d67ca89SAndroid Build Coastguard Worker #define WAVE_SCALE 0x00040000 151*8d67ca89SAndroid Build Coastguard Worker #define WAVE_FRACTIONS 0x00080000 152*8d67ca89SAndroid Build Coastguard Worker #define WAVE_ROM 0x40000000 153*8d67ca89SAndroid Build Coastguard Worker #define WAVE_MULAW 0x20000000 154*8d67ca89SAndroid Build Coastguard Worker int len; 155*8d67ca89SAndroid Build Coastguard Worker int loop_start, loop_end; 156*8d67ca89SAndroid Build Coastguard Worker unsigned int base_freq; 157*8d67ca89SAndroid Build Coastguard Worker unsigned int base_note; 158*8d67ca89SAndroid Build Coastguard Worker unsigned int high_note; 159*8d67ca89SAndroid Build Coastguard Worker unsigned int low_note; 160*8d67ca89SAndroid Build Coastguard Worker int panning; 161*8d67ca89SAndroid Build Coastguard Worker int detuning; 162*8d67ca89SAndroid Build Coastguard Worker unsigned char env_rate[6]; 163*8d67ca89SAndroid Build Coastguard Worker unsigned char env_offset[6]; 164*8d67ca89SAndroid Build Coastguard Worker unsigned char tremolo_sweep; 165*8d67ca89SAndroid Build Coastguard Worker unsigned char tremolo_rate; 166*8d67ca89SAndroid Build Coastguard Worker unsigned char tremolo_depth; 167*8d67ca89SAndroid Build Coastguard Worker unsigned char vibrato_sweep; 168*8d67ca89SAndroid Build Coastguard Worker unsigned char vibrato_rate; 169*8d67ca89SAndroid Build Coastguard Worker unsigned char vibrato_depth; 170*8d67ca89SAndroid Build Coastguard Worker int scale_frequency; 171*8d67ca89SAndroid Build Coastguard Worker unsigned int scale_factor; 172*8d67ca89SAndroid Build Coastguard Worker int volume; 173*8d67ca89SAndroid Build Coastguard Worker int fractions; 174*8d67ca89SAndroid Build Coastguard Worker int reserved1; 175*8d67ca89SAndroid Build Coastguard Worker int spare[2]; 176*8d67ca89SAndroid Build Coastguard Worker char data[1]; 177*8d67ca89SAndroid Build Coastguard Worker }; 178*8d67ca89SAndroid Build Coastguard Worker struct sysex_info { 179*8d67ca89SAndroid Build Coastguard Worker short key; 180*8d67ca89SAndroid Build Coastguard Worker #define SYSEX_PATCH _PATCHKEY(0x05) 181*8d67ca89SAndroid Build Coastguard Worker #define MAUI_PATCH _PATCHKEY(0x06) 182*8d67ca89SAndroid Build Coastguard Worker short device_no; 183*8d67ca89SAndroid Build Coastguard Worker int len; 184*8d67ca89SAndroid Build Coastguard Worker unsigned char data[1]; 185*8d67ca89SAndroid Build Coastguard Worker }; 186*8d67ca89SAndroid Build Coastguard Worker #define SEQ_NOTEOFF 0 187*8d67ca89SAndroid Build Coastguard Worker #define SEQ_FMNOTEOFF SEQ_NOTEOFF 188*8d67ca89SAndroid Build Coastguard Worker #define SEQ_NOTEON 1 189*8d67ca89SAndroid Build Coastguard Worker #define SEQ_FMNOTEON SEQ_NOTEON 190*8d67ca89SAndroid Build Coastguard Worker #define SEQ_WAIT TMR_WAIT_ABS 191*8d67ca89SAndroid Build Coastguard Worker #define SEQ_PGMCHANGE 3 192*8d67ca89SAndroid Build Coastguard Worker #define SEQ_FMPGMCHANGE SEQ_PGMCHANGE 193*8d67ca89SAndroid Build Coastguard Worker #define SEQ_SYNCTIMER TMR_START 194*8d67ca89SAndroid Build Coastguard Worker #define SEQ_MIDIPUTC 5 195*8d67ca89SAndroid Build Coastguard Worker #define SEQ_DRUMON 6 196*8d67ca89SAndroid Build Coastguard Worker #define SEQ_DRUMOFF 7 197*8d67ca89SAndroid Build Coastguard Worker #define SEQ_ECHO TMR_ECHO 198*8d67ca89SAndroid Build Coastguard Worker #define SEQ_AFTERTOUCH 9 199*8d67ca89SAndroid Build Coastguard Worker #define SEQ_CONTROLLER 10 200*8d67ca89SAndroid Build Coastguard Worker #define CTL_BANK_SELECT 0x00 201*8d67ca89SAndroid Build Coastguard Worker #define CTL_MODWHEEL 0x01 202*8d67ca89SAndroid Build Coastguard Worker #define CTL_BREATH 0x02 203*8d67ca89SAndroid Build Coastguard Worker #define CTL_FOOT 0x04 204*8d67ca89SAndroid Build Coastguard Worker #define CTL_PORTAMENTO_TIME 0x05 205*8d67ca89SAndroid Build Coastguard Worker #define CTL_DATA_ENTRY 0x06 206*8d67ca89SAndroid Build Coastguard Worker #define CTL_MAIN_VOLUME 0x07 207*8d67ca89SAndroid Build Coastguard Worker #define CTL_BALANCE 0x08 208*8d67ca89SAndroid Build Coastguard Worker #define CTL_PAN 0x0a 209*8d67ca89SAndroid Build Coastguard Worker #define CTL_EXPRESSION 0x0b 210*8d67ca89SAndroid Build Coastguard Worker #define CTL_GENERAL_PURPOSE1 0x10 211*8d67ca89SAndroid Build Coastguard Worker #define CTL_GENERAL_PURPOSE2 0x11 212*8d67ca89SAndroid Build Coastguard Worker #define CTL_GENERAL_PURPOSE3 0x12 213*8d67ca89SAndroid Build Coastguard Worker #define CTL_GENERAL_PURPOSE4 0x13 214*8d67ca89SAndroid Build Coastguard Worker #define CTL_DAMPER_PEDAL 0x40 215*8d67ca89SAndroid Build Coastguard Worker #define CTL_SUSTAIN 0x40 216*8d67ca89SAndroid Build Coastguard Worker #define CTL_HOLD 0x40 217*8d67ca89SAndroid Build Coastguard Worker #define CTL_PORTAMENTO 0x41 218*8d67ca89SAndroid Build Coastguard Worker #define CTL_SOSTENUTO 0x42 219*8d67ca89SAndroid Build Coastguard Worker #define CTL_SOFT_PEDAL 0x43 220*8d67ca89SAndroid Build Coastguard Worker #define CTL_HOLD2 0x45 221*8d67ca89SAndroid Build Coastguard Worker #define CTL_GENERAL_PURPOSE5 0x50 222*8d67ca89SAndroid Build Coastguard Worker #define CTL_GENERAL_PURPOSE6 0x51 223*8d67ca89SAndroid Build Coastguard Worker #define CTL_GENERAL_PURPOSE7 0x52 224*8d67ca89SAndroid Build Coastguard Worker #define CTL_GENERAL_PURPOSE8 0x53 225*8d67ca89SAndroid Build Coastguard Worker #define CTL_EXT_EFF_DEPTH 0x5b 226*8d67ca89SAndroid Build Coastguard Worker #define CTL_TREMOLO_DEPTH 0x5c 227*8d67ca89SAndroid Build Coastguard Worker #define CTL_CHORUS_DEPTH 0x5d 228*8d67ca89SAndroid Build Coastguard Worker #define CTL_DETUNE_DEPTH 0x5e 229*8d67ca89SAndroid Build Coastguard Worker #define CTL_CELESTE_DEPTH 0x5e 230*8d67ca89SAndroid Build Coastguard Worker #define CTL_PHASER_DEPTH 0x5f 231*8d67ca89SAndroid Build Coastguard Worker #define CTL_DATA_INCREMENT 0x60 232*8d67ca89SAndroid Build Coastguard Worker #define CTL_DATA_DECREMENT 0x61 233*8d67ca89SAndroid Build Coastguard Worker #define CTL_NONREG_PARM_NUM_LSB 0x62 234*8d67ca89SAndroid Build Coastguard Worker #define CTL_NONREG_PARM_NUM_MSB 0x63 235*8d67ca89SAndroid Build Coastguard Worker #define CTL_REGIST_PARM_NUM_LSB 0x64 236*8d67ca89SAndroid Build Coastguard Worker #define CTL_REGIST_PARM_NUM_MSB 0x65 237*8d67ca89SAndroid Build Coastguard Worker #define CTRL_PITCH_BENDER 255 238*8d67ca89SAndroid Build Coastguard Worker #define CTRL_PITCH_BENDER_RANGE 254 239*8d67ca89SAndroid Build Coastguard Worker #define CTRL_EXPRESSION 253 240*8d67ca89SAndroid Build Coastguard Worker #define CTRL_MAIN_VOLUME 252 241*8d67ca89SAndroid Build Coastguard Worker #define SEQ_BALANCE 11 242*8d67ca89SAndroid Build Coastguard Worker #define SEQ_VOLMODE 12 243*8d67ca89SAndroid Build Coastguard Worker #define VOL_METHOD_ADAGIO 1 244*8d67ca89SAndroid Build Coastguard Worker #define VOL_METHOD_LINEAR 2 245*8d67ca89SAndroid Build Coastguard Worker #define SEQ_FULLSIZE 0xfd 246*8d67ca89SAndroid Build Coastguard Worker #define SEQ_PRIVATE 0xfe 247*8d67ca89SAndroid Build Coastguard Worker #define SEQ_EXTENDED 0xff 248*8d67ca89SAndroid Build Coastguard Worker typedef unsigned char sbi_instr_data[32]; 249*8d67ca89SAndroid Build Coastguard Worker struct sbi_instrument { 250*8d67ca89SAndroid Build Coastguard Worker unsigned short key; 251*8d67ca89SAndroid Build Coastguard Worker #define FM_PATCH _PATCHKEY(0x01) 252*8d67ca89SAndroid Build Coastguard Worker #define OPL3_PATCH _PATCHKEY(0x03) 253*8d67ca89SAndroid Build Coastguard Worker short device; 254*8d67ca89SAndroid Build Coastguard Worker int channel; 255*8d67ca89SAndroid Build Coastguard Worker sbi_instr_data operators; 256*8d67ca89SAndroid Build Coastguard Worker }; 257*8d67ca89SAndroid Build Coastguard Worker struct synth_info { 258*8d67ca89SAndroid Build Coastguard Worker char name[30]; 259*8d67ca89SAndroid Build Coastguard Worker int device; 260*8d67ca89SAndroid Build Coastguard Worker int synth_type; 261*8d67ca89SAndroid Build Coastguard Worker #define SYNTH_TYPE_FM 0 262*8d67ca89SAndroid Build Coastguard Worker #define SYNTH_TYPE_SAMPLE 1 263*8d67ca89SAndroid Build Coastguard Worker #define SYNTH_TYPE_MIDI 2 264*8d67ca89SAndroid Build Coastguard Worker int synth_subtype; 265*8d67ca89SAndroid Build Coastguard Worker #define FM_TYPE_ADLIB 0x00 266*8d67ca89SAndroid Build Coastguard Worker #define FM_TYPE_OPL3 0x01 267*8d67ca89SAndroid Build Coastguard Worker #define MIDI_TYPE_MPU401 0x401 268*8d67ca89SAndroid Build Coastguard Worker #define SAMPLE_TYPE_BASIC 0x10 269*8d67ca89SAndroid Build Coastguard Worker #define SAMPLE_TYPE_GUS SAMPLE_TYPE_BASIC 270*8d67ca89SAndroid Build Coastguard Worker #define SAMPLE_TYPE_WAVEFRONT 0x11 271*8d67ca89SAndroid Build Coastguard Worker int perc_mode; 272*8d67ca89SAndroid Build Coastguard Worker int nr_voices; 273*8d67ca89SAndroid Build Coastguard Worker int nr_drums; 274*8d67ca89SAndroid Build Coastguard Worker int instr_bank_size; 275*8d67ca89SAndroid Build Coastguard Worker unsigned int capabilities; 276*8d67ca89SAndroid Build Coastguard Worker #define SYNTH_CAP_PERCMODE 0x00000001 277*8d67ca89SAndroid Build Coastguard Worker #define SYNTH_CAP_OPL3 0x00000002 278*8d67ca89SAndroid Build Coastguard Worker #define SYNTH_CAP_INPUT 0x00000004 279*8d67ca89SAndroid Build Coastguard Worker int dummies[19]; 280*8d67ca89SAndroid Build Coastguard Worker }; 281*8d67ca89SAndroid Build Coastguard Worker struct sound_timer_info { 282*8d67ca89SAndroid Build Coastguard Worker char name[32]; 283*8d67ca89SAndroid Build Coastguard Worker int caps; 284*8d67ca89SAndroid Build Coastguard Worker }; 285*8d67ca89SAndroid Build Coastguard Worker #define MIDI_CAP_MPU401 1 286*8d67ca89SAndroid Build Coastguard Worker struct midi_info { 287*8d67ca89SAndroid Build Coastguard Worker char name[30]; 288*8d67ca89SAndroid Build Coastguard Worker int device; 289*8d67ca89SAndroid Build Coastguard Worker unsigned int capabilities; 290*8d67ca89SAndroid Build Coastguard Worker int dev_type; 291*8d67ca89SAndroid Build Coastguard Worker int dummies[18]; 292*8d67ca89SAndroid Build Coastguard Worker }; 293*8d67ca89SAndroid Build Coastguard Worker typedef struct { 294*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd; 295*8d67ca89SAndroid Build Coastguard Worker char nr_args, nr_returns; 296*8d67ca89SAndroid Build Coastguard Worker unsigned char data[30]; 297*8d67ca89SAndroid Build Coastguard Worker } mpu_command_rec; 298*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_MIDI_PRETIME _SIOWR('m', 0, int) 299*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_MIDI_MPUMODE _SIOWR('m', 1, int) 300*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_MIDI_MPUCMD _SIOWR('m', 2, mpu_command_rec) 301*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_RESET _SIO('P', 0) 302*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_SYNC _SIO('P', 1) 303*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_SPEED _SIOWR('P', 2, int) 304*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_STEREO _SIOWR('P', 3, int) 305*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_GETBLKSIZE _SIOWR('P', 4, int) 306*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_SAMPLESIZE SNDCTL_DSP_SETFMT 307*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_CHANNELS _SIOWR('P', 6, int) 308*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_WRITE_CHANNELS SNDCTL_DSP_CHANNELS 309*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_WRITE_FILTER _SIOWR('P', 7, int) 310*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_POST _SIO('P', 8) 311*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_SUBDIVIDE _SIOWR('P', 9, int) 312*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_SETFRAGMENT _SIOWR('P', 10, int) 313*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_GETFMTS _SIOR('P', 11, int) 314*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_SETFMT _SIOWR('P', 5, int) 315*8d67ca89SAndroid Build Coastguard Worker #define AFMT_QUERY 0x00000000 316*8d67ca89SAndroid Build Coastguard Worker #define AFMT_MU_LAW 0x00000001 317*8d67ca89SAndroid Build Coastguard Worker #define AFMT_A_LAW 0x00000002 318*8d67ca89SAndroid Build Coastguard Worker #define AFMT_IMA_ADPCM 0x00000004 319*8d67ca89SAndroid Build Coastguard Worker #define AFMT_U8 0x00000008 320*8d67ca89SAndroid Build Coastguard Worker #define AFMT_S16_LE 0x00000010 321*8d67ca89SAndroid Build Coastguard Worker #define AFMT_S16_BE 0x00000020 322*8d67ca89SAndroid Build Coastguard Worker #define AFMT_S8 0x00000040 323*8d67ca89SAndroid Build Coastguard Worker #define AFMT_U16_LE 0x00000080 324*8d67ca89SAndroid Build Coastguard Worker #define AFMT_U16_BE 0x00000100 325*8d67ca89SAndroid Build Coastguard Worker #define AFMT_MPEG 0x00000200 326*8d67ca89SAndroid Build Coastguard Worker #define AFMT_AC3 0x00000400 327*8d67ca89SAndroid Build Coastguard Worker typedef struct audio_buf_info { 328*8d67ca89SAndroid Build Coastguard Worker int fragments; 329*8d67ca89SAndroid Build Coastguard Worker int fragstotal; 330*8d67ca89SAndroid Build Coastguard Worker int fragsize; 331*8d67ca89SAndroid Build Coastguard Worker int bytes; 332*8d67ca89SAndroid Build Coastguard Worker } audio_buf_info; 333*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_GETOSPACE _SIOR('P', 12, audio_buf_info) 334*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_GETISPACE _SIOR('P', 13, audio_buf_info) 335*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_NONBLOCK _SIO('P', 14) 336*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_GETCAPS _SIOR('P', 15, int) 337*8d67ca89SAndroid Build Coastguard Worker #define DSP_CAP_REVISION 0x000000ff 338*8d67ca89SAndroid Build Coastguard Worker #define DSP_CAP_DUPLEX 0x00000100 339*8d67ca89SAndroid Build Coastguard Worker #define DSP_CAP_REALTIME 0x00000200 340*8d67ca89SAndroid Build Coastguard Worker #define DSP_CAP_BATCH 0x00000400 341*8d67ca89SAndroid Build Coastguard Worker #define DSP_CAP_COPROC 0x00000800 342*8d67ca89SAndroid Build Coastguard Worker #define DSP_CAP_TRIGGER 0x00001000 343*8d67ca89SAndroid Build Coastguard Worker #define DSP_CAP_MMAP 0x00002000 344*8d67ca89SAndroid Build Coastguard Worker #define DSP_CAP_MULTI 0x00004000 345*8d67ca89SAndroid Build Coastguard Worker #define DSP_CAP_BIND 0x00008000 346*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_GETTRIGGER _SIOR('P', 16, int) 347*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_SETTRIGGER _SIOW('P', 16, int) 348*8d67ca89SAndroid Build Coastguard Worker #define PCM_ENABLE_INPUT 0x00000001 349*8d67ca89SAndroid Build Coastguard Worker #define PCM_ENABLE_OUTPUT 0x00000002 350*8d67ca89SAndroid Build Coastguard Worker typedef struct count_info { 351*8d67ca89SAndroid Build Coastguard Worker int bytes; 352*8d67ca89SAndroid Build Coastguard Worker int blocks; 353*8d67ca89SAndroid Build Coastguard Worker int ptr; 354*8d67ca89SAndroid Build Coastguard Worker } count_info; 355*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_GETIPTR _SIOR('P', 17, count_info) 356*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_GETOPTR _SIOR('P', 18, count_info) 357*8d67ca89SAndroid Build Coastguard Worker typedef struct buffmem_desc { 358*8d67ca89SAndroid Build Coastguard Worker unsigned * buffer; 359*8d67ca89SAndroid Build Coastguard Worker int size; 360*8d67ca89SAndroid Build Coastguard Worker } buffmem_desc; 361*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_MAPINBUF _SIOR('P', 19, buffmem_desc) 362*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_MAPOUTBUF _SIOR('P', 20, buffmem_desc) 363*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_SETSYNCRO _SIO('P', 21) 364*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_SETDUPLEX _SIO('P', 22) 365*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_GETODELAY _SIOR('P', 23, int) 366*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_GETCHANNELMASK _SIOWR('P', 64, int) 367*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_BIND_CHANNEL _SIOWR('P', 65, int) 368*8d67ca89SAndroid Build Coastguard Worker #define DSP_BIND_QUERY 0x00000000 369*8d67ca89SAndroid Build Coastguard Worker #define DSP_BIND_FRONT 0x00000001 370*8d67ca89SAndroid Build Coastguard Worker #define DSP_BIND_SURR 0x00000002 371*8d67ca89SAndroid Build Coastguard Worker #define DSP_BIND_CENTER_LFE 0x00000004 372*8d67ca89SAndroid Build Coastguard Worker #define DSP_BIND_HANDSET 0x00000008 373*8d67ca89SAndroid Build Coastguard Worker #define DSP_BIND_MIC 0x00000010 374*8d67ca89SAndroid Build Coastguard Worker #define DSP_BIND_MODEM1 0x00000020 375*8d67ca89SAndroid Build Coastguard Worker #define DSP_BIND_MODEM2 0x00000040 376*8d67ca89SAndroid Build Coastguard Worker #define DSP_BIND_I2S 0x00000080 377*8d67ca89SAndroid Build Coastguard Worker #define DSP_BIND_SPDIF 0x00000100 378*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_SETSPDIF _SIOW('P', 66, int) 379*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_GETSPDIF _SIOR('P', 67, int) 380*8d67ca89SAndroid Build Coastguard Worker #define SPDIF_PRO 0x0001 381*8d67ca89SAndroid Build Coastguard Worker #define SPDIF_N_AUD 0x0002 382*8d67ca89SAndroid Build Coastguard Worker #define SPDIF_COPY 0x0004 383*8d67ca89SAndroid Build Coastguard Worker #define SPDIF_PRE 0x0008 384*8d67ca89SAndroid Build Coastguard Worker #define SPDIF_CC 0x07f0 385*8d67ca89SAndroid Build Coastguard Worker #define SPDIF_L 0x0800 386*8d67ca89SAndroid Build Coastguard Worker #define SPDIF_DRS 0x4000 387*8d67ca89SAndroid Build Coastguard Worker #define SPDIF_V 0x8000 388*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_DSP_PROFILE _SIOW('P', 23, int) 389*8d67ca89SAndroid Build Coastguard Worker #define APF_NORMAL 0 390*8d67ca89SAndroid Build Coastguard Worker #define APF_NETWORK 1 391*8d67ca89SAndroid Build Coastguard Worker #define APF_CPUINTENS 2 392*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_READ_RATE _SIOR('P', 2, int) 393*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_READ_CHANNELS _SIOR('P', 6, int) 394*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_READ_BITS _SIOR('P', 5, int) 395*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_READ_FILTER _SIOR('P', 7, int) 396*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_WRITE_BITS SNDCTL_DSP_SETFMT 397*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_WRITE_RATE SNDCTL_DSP_SPEED 398*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_POST SNDCTL_DSP_POST 399*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_RESET SNDCTL_DSP_RESET 400*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_SYNC SNDCTL_DSP_SYNC 401*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_SUBDIVIDE SNDCTL_DSP_SUBDIVIDE 402*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_SETFRAGMENT SNDCTL_DSP_SETFRAGMENT 403*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_GETFMTS SNDCTL_DSP_GETFMTS 404*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_SETFMT SNDCTL_DSP_SETFMT 405*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_GETOSPACE SNDCTL_DSP_GETOSPACE 406*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_GETISPACE SNDCTL_DSP_GETISPACE 407*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_NONBLOCK SNDCTL_DSP_NONBLOCK 408*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_GETCAPS SNDCTL_DSP_GETCAPS 409*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_GETTRIGGER SNDCTL_DSP_GETTRIGGER 410*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_SETTRIGGER SNDCTL_DSP_SETTRIGGER 411*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_SETSYNCRO SNDCTL_DSP_SETSYNCRO 412*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_GETIPTR SNDCTL_DSP_GETIPTR 413*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_GETOPTR SNDCTL_DSP_GETOPTR 414*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_MAPINBUF SNDCTL_DSP_MAPINBUF 415*8d67ca89SAndroid Build Coastguard Worker #define SOUND_PCM_MAPOUTBUF SNDCTL_DSP_MAPOUTBUF 416*8d67ca89SAndroid Build Coastguard Worker typedef struct copr_buffer { 417*8d67ca89SAndroid Build Coastguard Worker int command; 418*8d67ca89SAndroid Build Coastguard Worker int flags; 419*8d67ca89SAndroid Build Coastguard Worker #define CPF_NONE 0x0000 420*8d67ca89SAndroid Build Coastguard Worker #define CPF_FIRST 0x0001 421*8d67ca89SAndroid Build Coastguard Worker #define CPF_LAST 0x0002 422*8d67ca89SAndroid Build Coastguard Worker int len; 423*8d67ca89SAndroid Build Coastguard Worker int offs; 424*8d67ca89SAndroid Build Coastguard Worker unsigned char data[4000]; 425*8d67ca89SAndroid Build Coastguard Worker } copr_buffer; 426*8d67ca89SAndroid Build Coastguard Worker typedef struct copr_debug_buf { 427*8d67ca89SAndroid Build Coastguard Worker int command; 428*8d67ca89SAndroid Build Coastguard Worker int parm1; 429*8d67ca89SAndroid Build Coastguard Worker int parm2; 430*8d67ca89SAndroid Build Coastguard Worker int flags; 431*8d67ca89SAndroid Build Coastguard Worker int len; 432*8d67ca89SAndroid Build Coastguard Worker } copr_debug_buf; 433*8d67ca89SAndroid Build Coastguard Worker typedef struct copr_msg { 434*8d67ca89SAndroid Build Coastguard Worker int len; 435*8d67ca89SAndroid Build Coastguard Worker unsigned char data[4000]; 436*8d67ca89SAndroid Build Coastguard Worker } copr_msg; 437*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_COPR_RESET _SIO('C', 0) 438*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_COPR_LOAD _SIOWR('C', 1, copr_buffer) 439*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_COPR_RDATA _SIOWR('C', 2, copr_debug_buf) 440*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_COPR_RCODE _SIOWR('C', 3, copr_debug_buf) 441*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_COPR_WDATA _SIOW('C', 4, copr_debug_buf) 442*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_COPR_WCODE _SIOW('C', 5, copr_debug_buf) 443*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_COPR_RUN _SIOWR('C', 6, copr_debug_buf) 444*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_COPR_HALT _SIOWR('C', 7, copr_debug_buf) 445*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_COPR_SENDMSG _SIOWR('C', 8, copr_msg) 446*8d67ca89SAndroid Build Coastguard Worker #define SNDCTL_COPR_RCVMSG _SIOR('C', 9, copr_msg) 447*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_NRDEVICES 25 448*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_VOLUME 0 449*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_BASS 1 450*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_TREBLE 2 451*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_SYNTH 3 452*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_PCM 4 453*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_SPEAKER 5 454*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_LINE 6 455*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_MIC 7 456*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_CD 8 457*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_IMIX 9 458*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_ALTPCM 10 459*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_RECLEV 11 460*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_IGAIN 12 461*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_OGAIN 13 462*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_LINE1 14 463*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_LINE2 15 464*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_LINE3 16 465*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_DIGITAL1 17 466*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_DIGITAL2 18 467*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_DIGITAL3 19 468*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_PHONEIN 20 469*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_PHONEOUT 21 470*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_VIDEO 22 471*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_RADIO 23 472*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_MONITOR 24 473*8d67ca89SAndroid Build Coastguard Worker #define SOUND_ONOFF_MIN 28 474*8d67ca89SAndroid Build Coastguard Worker #define SOUND_ONOFF_MAX 30 475*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_NONE 31 476*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_ENHANCE SOUND_MIXER_NONE 477*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_MUTE SOUND_MIXER_NONE 478*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_LOUD SOUND_MIXER_NONE 479*8d67ca89SAndroid Build Coastguard Worker #define SOUND_DEVICE_LABELS { "Vol ", "Bass ", "Trebl", "Synth", "Pcm ", "Spkr ", "Line ", "Mic ", "CD ", "Mix ", "Pcm2 ", "Rec ", "IGain", "OGain", "Line1", "Line2", "Line3", "Digital1", "Digital2", "Digital3", "PhoneIn", "PhoneOut", "Video", "Radio", "Monitor" } 480*8d67ca89SAndroid Build Coastguard Worker #define SOUND_DEVICE_NAMES { "vol", "bass", "treble", "synth", "pcm", "speaker", "line", "mic", "cd", "mix", "pcm2", "rec", "igain", "ogain", "line1", "line2", "line3", "dig1", "dig2", "dig3", "phin", "phout", "video", "radio", "monitor" } 481*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_RECSRC 0xff 482*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_DEVMASK 0xfe 483*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_RECMASK 0xfd 484*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_CAPS 0xfc 485*8d67ca89SAndroid Build Coastguard Worker #define SOUND_CAP_EXCL_INPUT 0x00000001 486*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_STEREODEVS 0xfb 487*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_OUTSRC 0xfa 488*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_OUTMASK 0xf9 489*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_VOLUME (1 << SOUND_MIXER_VOLUME) 490*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_BASS (1 << SOUND_MIXER_BASS) 491*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_TREBLE (1 << SOUND_MIXER_TREBLE) 492*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_SYNTH (1 << SOUND_MIXER_SYNTH) 493*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_PCM (1 << SOUND_MIXER_PCM) 494*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_SPEAKER (1 << SOUND_MIXER_SPEAKER) 495*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_LINE (1 << SOUND_MIXER_LINE) 496*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_MIC (1 << SOUND_MIXER_MIC) 497*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_CD (1 << SOUND_MIXER_CD) 498*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_IMIX (1 << SOUND_MIXER_IMIX) 499*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_ALTPCM (1 << SOUND_MIXER_ALTPCM) 500*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_RECLEV (1 << SOUND_MIXER_RECLEV) 501*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_IGAIN (1 << SOUND_MIXER_IGAIN) 502*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_OGAIN (1 << SOUND_MIXER_OGAIN) 503*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_LINE1 (1 << SOUND_MIXER_LINE1) 504*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_LINE2 (1 << SOUND_MIXER_LINE2) 505*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_LINE3 (1 << SOUND_MIXER_LINE3) 506*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_DIGITAL1 (1 << SOUND_MIXER_DIGITAL1) 507*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_DIGITAL2 (1 << SOUND_MIXER_DIGITAL2) 508*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_DIGITAL3 (1 << SOUND_MIXER_DIGITAL3) 509*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_PHONEIN (1 << SOUND_MIXER_PHONEIN) 510*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_PHONEOUT (1 << SOUND_MIXER_PHONEOUT) 511*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_RADIO (1 << SOUND_MIXER_RADIO) 512*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_VIDEO (1 << SOUND_MIXER_VIDEO) 513*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_MONITOR (1 << SOUND_MIXER_MONITOR) 514*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_MUTE (1 << SOUND_MIXER_MUTE) 515*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_ENHANCE (1 << SOUND_MIXER_ENHANCE) 516*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MASK_LOUD (1 << SOUND_MIXER_LOUD) 517*8d67ca89SAndroid Build Coastguard Worker #define MIXER_READ(dev) _SIOR('M', dev, int) 518*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_VOLUME MIXER_READ(SOUND_MIXER_VOLUME) 519*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_BASS MIXER_READ(SOUND_MIXER_BASS) 520*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_TREBLE MIXER_READ(SOUND_MIXER_TREBLE) 521*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_SYNTH MIXER_READ(SOUND_MIXER_SYNTH) 522*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_PCM MIXER_READ(SOUND_MIXER_PCM) 523*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_SPEAKER MIXER_READ(SOUND_MIXER_SPEAKER) 524*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_LINE MIXER_READ(SOUND_MIXER_LINE) 525*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_MIC MIXER_READ(SOUND_MIXER_MIC) 526*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_CD MIXER_READ(SOUND_MIXER_CD) 527*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_IMIX MIXER_READ(SOUND_MIXER_IMIX) 528*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_ALTPCM MIXER_READ(SOUND_MIXER_ALTPCM) 529*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_RECLEV MIXER_READ(SOUND_MIXER_RECLEV) 530*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_IGAIN MIXER_READ(SOUND_MIXER_IGAIN) 531*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_OGAIN MIXER_READ(SOUND_MIXER_OGAIN) 532*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_LINE1 MIXER_READ(SOUND_MIXER_LINE1) 533*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_LINE2 MIXER_READ(SOUND_MIXER_LINE2) 534*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_LINE3 MIXER_READ(SOUND_MIXER_LINE3) 535*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_MUTE MIXER_READ(SOUND_MIXER_MUTE) 536*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_ENHANCE MIXER_READ(SOUND_MIXER_ENHANCE) 537*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_LOUD MIXER_READ(SOUND_MIXER_LOUD) 538*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_RECSRC MIXER_READ(SOUND_MIXER_RECSRC) 539*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_DEVMASK MIXER_READ(SOUND_MIXER_DEVMASK) 540*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_RECMASK MIXER_READ(SOUND_MIXER_RECMASK) 541*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_STEREODEVS MIXER_READ(SOUND_MIXER_STEREODEVS) 542*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_READ_CAPS MIXER_READ(SOUND_MIXER_CAPS) 543*8d67ca89SAndroid Build Coastguard Worker #define MIXER_WRITE(dev) _SIOWR('M', dev, int) 544*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_VOLUME MIXER_WRITE(SOUND_MIXER_VOLUME) 545*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_BASS MIXER_WRITE(SOUND_MIXER_BASS) 546*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_TREBLE MIXER_WRITE(SOUND_MIXER_TREBLE) 547*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_SYNTH MIXER_WRITE(SOUND_MIXER_SYNTH) 548*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_PCM MIXER_WRITE(SOUND_MIXER_PCM) 549*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_SPEAKER MIXER_WRITE(SOUND_MIXER_SPEAKER) 550*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_LINE MIXER_WRITE(SOUND_MIXER_LINE) 551*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_MIC MIXER_WRITE(SOUND_MIXER_MIC) 552*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_CD MIXER_WRITE(SOUND_MIXER_CD) 553*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_IMIX MIXER_WRITE(SOUND_MIXER_IMIX) 554*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_ALTPCM MIXER_WRITE(SOUND_MIXER_ALTPCM) 555*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_RECLEV MIXER_WRITE(SOUND_MIXER_RECLEV) 556*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_IGAIN MIXER_WRITE(SOUND_MIXER_IGAIN) 557*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_OGAIN MIXER_WRITE(SOUND_MIXER_OGAIN) 558*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_LINE1 MIXER_WRITE(SOUND_MIXER_LINE1) 559*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_LINE2 MIXER_WRITE(SOUND_MIXER_LINE2) 560*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_LINE3 MIXER_WRITE(SOUND_MIXER_LINE3) 561*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_MUTE MIXER_WRITE(SOUND_MIXER_MUTE) 562*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_ENHANCE MIXER_WRITE(SOUND_MIXER_ENHANCE) 563*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_LOUD MIXER_WRITE(SOUND_MIXER_LOUD) 564*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_WRITE_RECSRC MIXER_WRITE(SOUND_MIXER_RECSRC) 565*8d67ca89SAndroid Build Coastguard Worker typedef struct mixer_info { 566*8d67ca89SAndroid Build Coastguard Worker char id[16]; 567*8d67ca89SAndroid Build Coastguard Worker char name[32]; 568*8d67ca89SAndroid Build Coastguard Worker int modify_counter; 569*8d67ca89SAndroid Build Coastguard Worker int fillers[10]; 570*8d67ca89SAndroid Build Coastguard Worker } mixer_info; 571*8d67ca89SAndroid Build Coastguard Worker typedef struct _old_mixer_info { 572*8d67ca89SAndroid Build Coastguard Worker char id[16]; 573*8d67ca89SAndroid Build Coastguard Worker char name[32]; 574*8d67ca89SAndroid Build Coastguard Worker } _old_mixer_info; 575*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_INFO _SIOR('M', 101, mixer_info) 576*8d67ca89SAndroid Build Coastguard Worker #define SOUND_OLD_MIXER_INFO _SIOR('M', 101, _old_mixer_info) 577*8d67ca89SAndroid Build Coastguard Worker typedef unsigned char mixer_record[128]; 578*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_ACCESS _SIOWR('M', 102, mixer_record) 579*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_AGC _SIOWR('M', 103, int) 580*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_3DSE _SIOWR('M', 104, int) 581*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_PRIVATE1 _SIOWR('M', 111, int) 582*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_PRIVATE2 _SIOWR('M', 112, int) 583*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_PRIVATE3 _SIOWR('M', 113, int) 584*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_PRIVATE4 _SIOWR('M', 114, int) 585*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_PRIVATE5 _SIOWR('M', 115, int) 586*8d67ca89SAndroid Build Coastguard Worker typedef struct mixer_vol_table { 587*8d67ca89SAndroid Build Coastguard Worker int num; 588*8d67ca89SAndroid Build Coastguard Worker char name[32]; 589*8d67ca89SAndroid Build Coastguard Worker int levels[32]; 590*8d67ca89SAndroid Build Coastguard Worker } mixer_vol_table; 591*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_GETLEVELS _SIOWR('M', 116, mixer_vol_table) 592*8d67ca89SAndroid Build Coastguard Worker #define SOUND_MIXER_SETLEVELS _SIOWR('M', 117, mixer_vol_table) 593*8d67ca89SAndroid Build Coastguard Worker #define OSS_GETVERSION _SIOR('M', 118, int) 594*8d67ca89SAndroid Build Coastguard Worker #define EV_SEQ_LOCAL 0x80 595*8d67ca89SAndroid Build Coastguard Worker #define EV_TIMING 0x81 596*8d67ca89SAndroid Build Coastguard Worker #define EV_CHN_COMMON 0x92 597*8d67ca89SAndroid Build Coastguard Worker #define EV_CHN_VOICE 0x93 598*8d67ca89SAndroid Build Coastguard Worker #define EV_SYSEX 0x94 599*8d67ca89SAndroid Build Coastguard Worker #define MIDI_NOTEOFF 0x80 600*8d67ca89SAndroid Build Coastguard Worker #define MIDI_NOTEON 0x90 601*8d67ca89SAndroid Build Coastguard Worker #define MIDI_KEY_PRESSURE 0xA0 602*8d67ca89SAndroid Build Coastguard Worker #define MIDI_CTL_CHANGE 0xB0 603*8d67ca89SAndroid Build Coastguard Worker #define MIDI_PGM_CHANGE 0xC0 604*8d67ca89SAndroid Build Coastguard Worker #define MIDI_CHN_PRESSURE 0xD0 605*8d67ca89SAndroid Build Coastguard Worker #define MIDI_PITCH_BEND 0xE0 606*8d67ca89SAndroid Build Coastguard Worker #define MIDI_SYSTEM_PREFIX 0xF0 607*8d67ca89SAndroid Build Coastguard Worker #define TMR_WAIT_REL 1 608*8d67ca89SAndroid Build Coastguard Worker #define TMR_WAIT_ABS 2 609*8d67ca89SAndroid Build Coastguard Worker #define TMR_STOP 3 610*8d67ca89SAndroid Build Coastguard Worker #define TMR_START 4 611*8d67ca89SAndroid Build Coastguard Worker #define TMR_CONTINUE 5 612*8d67ca89SAndroid Build Coastguard Worker #define TMR_TEMPO 6 613*8d67ca89SAndroid Build Coastguard Worker #define TMR_ECHO 8 614*8d67ca89SAndroid Build Coastguard Worker #define TMR_CLOCK 9 615*8d67ca89SAndroid Build Coastguard Worker #define TMR_SPP 10 616*8d67ca89SAndroid Build Coastguard Worker #define TMR_TIMESIG 11 617*8d67ca89SAndroid Build Coastguard Worker #define LOCL_STARTAUDIO 1 618*8d67ca89SAndroid Build Coastguard Worker #define SEQ_DECLAREBUF() SEQ_USE_EXTBUF() 619*8d67ca89SAndroid Build Coastguard Worker #define SEQ_PM_DEFINES int __foo_bar___ 620*8d67ca89SAndroid Build Coastguard Worker #define SEQ_LOAD_GMINSTR(dev,instr) 621*8d67ca89SAndroid Build Coastguard Worker #define SEQ_LOAD_GMDRUM(dev,drum) 622*8d67ca89SAndroid Build Coastguard Worker #define _SEQ_EXTERN extern 623*8d67ca89SAndroid Build Coastguard Worker #define SEQ_USE_EXTBUF() _SEQ_EXTERN unsigned char _seqbuf[]; _SEQ_EXTERN int _seqbuflen; _SEQ_EXTERN int _seqbufptr 624*8d67ca89SAndroid Build Coastguard Worker #ifndef USE_SIMPLE_MACROS 625*8d67ca89SAndroid Build Coastguard Worker #define SEQ_DEFINEBUF(len) unsigned char _seqbuf[len]; int _seqbuflen = len; int _seqbufptr = 0 626*8d67ca89SAndroid Build Coastguard Worker #define _SEQ_NEEDBUF(len) if((_seqbufptr + (len)) > _seqbuflen) seqbuf_dump() 627*8d67ca89SAndroid Build Coastguard Worker #define _SEQ_ADVBUF(len) _seqbufptr += len 628*8d67ca89SAndroid Build Coastguard Worker #define SEQ_DUMPBUF seqbuf_dump 629*8d67ca89SAndroid Build Coastguard Worker #else 630*8d67ca89SAndroid Build Coastguard Worker #define _SEQ_NEEDBUF(len) 631*8d67ca89SAndroid Build Coastguard Worker #endif 632*8d67ca89SAndroid Build Coastguard Worker #define SEQ_VOLUME_MODE(dev,mode) { _SEQ_NEEDBUF(8); _seqbuf[_seqbufptr] = SEQ_EXTENDED; _seqbuf[_seqbufptr + 1] = SEQ_VOLMODE; _seqbuf[_seqbufptr + 2] = (dev); _seqbuf[_seqbufptr + 3] = (mode); _seqbuf[_seqbufptr + 4] = 0; _seqbuf[_seqbufptr + 5] = 0; _seqbuf[_seqbufptr + 6] = 0; _seqbuf[_seqbufptr + 7] = 0; _SEQ_ADVBUF(8); } 633*8d67ca89SAndroid Build Coastguard Worker #define _CHN_VOICE(dev,event,chn,note,parm) { _SEQ_NEEDBUF(8); _seqbuf[_seqbufptr] = EV_CHN_VOICE; _seqbuf[_seqbufptr + 1] = (dev); _seqbuf[_seqbufptr + 2] = (event); _seqbuf[_seqbufptr + 3] = (chn); _seqbuf[_seqbufptr + 4] = (note); _seqbuf[_seqbufptr + 5] = (parm); _seqbuf[_seqbufptr + 6] = (0); _seqbuf[_seqbufptr + 7] = 0; _SEQ_ADVBUF(8); } 634*8d67ca89SAndroid Build Coastguard Worker #define SEQ_START_NOTE(dev,chn,note,vol) _CHN_VOICE(dev, MIDI_NOTEON, chn, note, vol) 635*8d67ca89SAndroid Build Coastguard Worker #define SEQ_STOP_NOTE(dev,chn,note,vol) _CHN_VOICE(dev, MIDI_NOTEOFF, chn, note, vol) 636*8d67ca89SAndroid Build Coastguard Worker #define SEQ_KEY_PRESSURE(dev,chn,note,pressure) _CHN_VOICE(dev, MIDI_KEY_PRESSURE, chn, note, pressure) 637*8d67ca89SAndroid Build Coastguard Worker #define _CHN_COMMON(dev,event,chn,p1,p2,w14) { _SEQ_NEEDBUF(8); _seqbuf[_seqbufptr] = EV_CHN_COMMON; _seqbuf[_seqbufptr + 1] = (dev); _seqbuf[_seqbufptr + 2] = (event); _seqbuf[_seqbufptr + 3] = (chn); _seqbuf[_seqbufptr + 4] = (p1); _seqbuf[_seqbufptr + 5] = (p2); * (short *) & _seqbuf[_seqbufptr + 6] = (w14); _SEQ_ADVBUF(8); } 638*8d67ca89SAndroid Build Coastguard Worker #define SEQ_SYSEX(dev,buf,len) { int ii, ll = (len); unsigned char * bufp = buf; if(ll > 6) ll = 6; _SEQ_NEEDBUF(8); _seqbuf[_seqbufptr] = EV_SYSEX; _seqbuf[_seqbufptr + 1] = (dev); for(ii = 0; ii < ll; ii ++) _seqbuf[_seqbufptr + ii + 2] = bufp[ii]; for(ii = ll; ii < 6; ii ++) _seqbuf[_seqbufptr + ii + 2] = 0xff; _SEQ_ADVBUF(8); } 639*8d67ca89SAndroid Build Coastguard Worker #define SEQ_CHN_PRESSURE(dev,chn,pressure) _CHN_COMMON(dev, MIDI_CHN_PRESSURE, chn, pressure, 0, 0) 640*8d67ca89SAndroid Build Coastguard Worker #define SEQ_SET_PATCH SEQ_PGM_CHANGE 641*8d67ca89SAndroid Build Coastguard Worker #define SEQ_PGM_CHANGE(dev,chn,patch) _CHN_COMMON(dev, MIDI_PGM_CHANGE, chn, patch, 0, 0) 642*8d67ca89SAndroid Build Coastguard Worker #define SEQ_CONTROL(dev,chn,controller,value) _CHN_COMMON(dev, MIDI_CTL_CHANGE, chn, controller, 0, value) 643*8d67ca89SAndroid Build Coastguard Worker #define SEQ_BENDER(dev,chn,value) _CHN_COMMON(dev, MIDI_PITCH_BEND, chn, 0, 0, value) 644*8d67ca89SAndroid Build Coastguard Worker #define SEQ_V2_X_CONTROL(dev,voice,controller,value) { _SEQ_NEEDBUF(8); _seqbuf[_seqbufptr] = SEQ_EXTENDED; _seqbuf[_seqbufptr + 1] = SEQ_CONTROLLER; _seqbuf[_seqbufptr + 2] = (dev); _seqbuf[_seqbufptr + 3] = (voice); _seqbuf[_seqbufptr + 4] = (controller); _seqbuf[_seqbufptr + 5] = ((value) & 0xff); _seqbuf[_seqbufptr + 6] = ((value >> 8) & 0xff); _seqbuf[_seqbufptr + 7] = 0; _SEQ_ADVBUF(8); } 645*8d67ca89SAndroid Build Coastguard Worker #define SEQ_PITCHBEND(dev,voice,value) SEQ_V2_X_CONTROL(dev, voice, CTRL_PITCH_BENDER, value) 646*8d67ca89SAndroid Build Coastguard Worker #define SEQ_BENDER_RANGE(dev,voice,value) SEQ_V2_X_CONTROL(dev, voice, CTRL_PITCH_BENDER_RANGE, value) 647*8d67ca89SAndroid Build Coastguard Worker #define SEQ_EXPRESSION(dev,voice,value) SEQ_CONTROL(dev, voice, CTL_EXPRESSION, value * 128) 648*8d67ca89SAndroid Build Coastguard Worker #define SEQ_MAIN_VOLUME(dev,voice,value) SEQ_CONTROL(dev, voice, CTL_MAIN_VOLUME, (value * 16383) / 100) 649*8d67ca89SAndroid Build Coastguard Worker #define SEQ_PANNING(dev,voice,pos) SEQ_CONTROL(dev, voice, CTL_PAN, (pos + 128) / 2) 650*8d67ca89SAndroid Build Coastguard Worker #define _TIMER_EVENT(ev,parm) { _SEQ_NEEDBUF(8); _seqbuf[_seqbufptr + 0] = EV_TIMING; _seqbuf[_seqbufptr + 1] = (ev); _seqbuf[_seqbufptr + 2] = 0; _seqbuf[_seqbufptr + 3] = 0; * (unsigned int *) & _seqbuf[_seqbufptr + 4] = (parm); _SEQ_ADVBUF(8); } 651*8d67ca89SAndroid Build Coastguard Worker #define SEQ_START_TIMER() _TIMER_EVENT(TMR_START, 0) 652*8d67ca89SAndroid Build Coastguard Worker #define SEQ_STOP_TIMER() _TIMER_EVENT(TMR_STOP, 0) 653*8d67ca89SAndroid Build Coastguard Worker #define SEQ_CONTINUE_TIMER() _TIMER_EVENT(TMR_CONTINUE, 0) 654*8d67ca89SAndroid Build Coastguard Worker #define SEQ_WAIT_TIME(ticks) _TIMER_EVENT(TMR_WAIT_ABS, ticks) 655*8d67ca89SAndroid Build Coastguard Worker #define SEQ_DELTA_TIME(ticks) _TIMER_EVENT(TMR_WAIT_REL, ticks) 656*8d67ca89SAndroid Build Coastguard Worker #define SEQ_ECHO_BACK(key) _TIMER_EVENT(TMR_ECHO, key) 657*8d67ca89SAndroid Build Coastguard Worker #define SEQ_SET_TEMPO(value) _TIMER_EVENT(TMR_TEMPO, value) 658*8d67ca89SAndroid Build Coastguard Worker #define SEQ_SONGPOS(pos) _TIMER_EVENT(TMR_SPP, pos) 659*8d67ca89SAndroid Build Coastguard Worker #define SEQ_TIME_SIGNATURE(sig) _TIMER_EVENT(TMR_TIMESIG, sig) 660*8d67ca89SAndroid Build Coastguard Worker #define _LOCAL_EVENT(ev,parm) { _SEQ_NEEDBUF(8); _seqbuf[_seqbufptr + 0] = EV_SEQ_LOCAL; _seqbuf[_seqbufptr + 1] = (ev); _seqbuf[_seqbufptr + 2] = 0; _seqbuf[_seqbufptr + 3] = 0; * (unsigned int *) & _seqbuf[_seqbufptr + 4] = (parm); _SEQ_ADVBUF(8); } 661*8d67ca89SAndroid Build Coastguard Worker #define SEQ_PLAYAUDIO(devmask) _LOCAL_EVENT(LOCL_STARTAUDIO, devmask) 662*8d67ca89SAndroid Build Coastguard Worker #define SEQ_MIDIOUT(device,byte) { _SEQ_NEEDBUF(4); _seqbuf[_seqbufptr] = SEQ_MIDIPUTC; _seqbuf[_seqbufptr + 1] = (byte); _seqbuf[_seqbufptr + 2] = (device); _seqbuf[_seqbufptr + 3] = 0; _SEQ_ADVBUF(4); } 663*8d67ca89SAndroid Build Coastguard Worker #define SEQ_WRPATCH(patchx,len) { if(_seqbufptr) SEQ_DUMPBUF(); if(write(seqfd, (char *) (patchx), len) == - 1) perror("Write patch: /dev/sequencer"); } 664*8d67ca89SAndroid Build Coastguard Worker #define SEQ_WRPATCH2(patchx,len) (SEQ_DUMPBUF(), write(seqfd, (char *) (patchx), len)) 665*8d67ca89SAndroid Build Coastguard Worker #endif 666