1 /* 2 * This header was generated from the Linux kernel headers by update_headers.py, 3 * to provide necessary information from kernel to userspace, such as constants, 4 * structures, and macros, and thus, contains no copyrightable information. 5 */ 6 #ifndef __SOUND_ASOUND_FM_H 7 #define __SOUND_ASOUND_FM_H 8 #define SNDRV_DM_FM_MODE_OPL2 0x00 9 #define SNDRV_DM_FM_MODE_OPL3 0x01 10 struct snd_dm_fm_info { 11 unsigned char fm_mode; 12 unsigned char rhythm; 13 }; 14 struct snd_dm_fm_voice { 15 unsigned char op; 16 unsigned char voice; 17 unsigned char am; 18 unsigned char vibrato; 19 unsigned char do_sustain; 20 unsigned char kbd_scale; 21 unsigned char harmonic; 22 unsigned char scale_level; 23 unsigned char volume; 24 unsigned char attack; 25 unsigned char decay; 26 unsigned char sustain; 27 unsigned char release; 28 unsigned char feedback; 29 unsigned char connection; 30 unsigned char left; 31 unsigned char right; 32 unsigned char waveform; 33 }; 34 struct snd_dm_fm_note { 35 unsigned char voice; 36 unsigned char octave; 37 unsigned int fnum; 38 unsigned char key_on; 39 }; 40 struct snd_dm_fm_params { 41 unsigned char am_depth; 42 unsigned char vib_depth; 43 unsigned char kbd_split; 44 unsigned char rhythm; 45 46 unsigned char bass; 47 unsigned char snare; 48 unsigned char tomtom; 49 unsigned char cymbal; 50 unsigned char hihat; 51 }; 52 #define SNDRV_DM_FM_IOCTL_INFO _IOR('H', 0x20, struct snd_dm_fm_info) 53 #define SNDRV_DM_FM_IOCTL_RESET _IO ('H', 0x21) 54 #define SNDRV_DM_FM_IOCTL_PLAY_NOTE _IOW('H', 0x22, struct snd_dm_fm_note) 55 #define SNDRV_DM_FM_IOCTL_SET_VOICE _IOW('H', 0x23, struct snd_dm_fm_voice) 56 #define SNDRV_DM_FM_IOCTL_SET_PARAMS _IOW('H', 0x24, struct snd_dm_fm_params) 57 #define SNDRV_DM_FM_IOCTL_SET_MODE _IOW('H', 0x25, int) 58 #define SNDRV_DM_FM_IOCTL_SET_CONNECTION _IOW('H', 0x26, int) 59 #define SNDRV_DM_FM_IOCTL_CLEAR_PATCHES _IO ('H', 0x40) 60 #define SNDRV_DM_FM_OSS_IOCTL_RESET 0x20 61 #define SNDRV_DM_FM_OSS_IOCTL_PLAY_NOTE 0x21 62 #define SNDRV_DM_FM_OSS_IOCTL_SET_VOICE 0x22 63 #define SNDRV_DM_FM_OSS_IOCTL_SET_PARAMS 0x23 64 #define SNDRV_DM_FM_OSS_IOCTL_SET_MODE 0x24 65 #define SNDRV_DM_FM_OSS_IOCTL_SET_OPL 0x25 66 #define FM_KEY_SBI "SBI\032" 67 #define FM_KEY_2OP "2OP\032" 68 #define FM_KEY_4OP "4OP\032" 69 struct sbi_patch { 70 unsigned char prog; 71 unsigned char bank; 72 char key[4]; 73 char name[25]; 74 char extension[7]; 75 unsigned char data[32]; 76 }; 77 #endif 78