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