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 10struct snd_dm_fm_info { 11 unsigned char fm_mode; 12 unsigned char rhythm; 13}; 14struct 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}; 34struct snd_dm_fm_note { 35 unsigned char voice; 36 unsigned char octave; 37 unsigned int fnum; 38 unsigned char key_on; 39}; 40struct 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" 69struct 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