122851890Sopenharmony_ci/*
222851890Sopenharmony_ci * This header was generated from the Linux kernel headers by update_headers.py,
322851890Sopenharmony_ci * to provide necessary information from kernel to userspace, such as constants,
422851890Sopenharmony_ci * structures, and macros, and thus, contains no copyrightable information.
522851890Sopenharmony_ci */
622851890Sopenharmony_ci#ifndef __SOUND_ASOUND_FM_H
722851890Sopenharmony_ci#define __SOUND_ASOUND_FM_H
822851890Sopenharmony_ci#define SNDRV_DM_FM_MODE_OPL2	0x00
922851890Sopenharmony_ci#define SNDRV_DM_FM_MODE_OPL3	0x01
1022851890Sopenharmony_cistruct snd_dm_fm_info {
1122851890Sopenharmony_ci	unsigned char fm_mode;
1222851890Sopenharmony_ci	unsigned char rhythm;
1322851890Sopenharmony_ci};
1422851890Sopenharmony_cistruct snd_dm_fm_voice {
1522851890Sopenharmony_ci	unsigned char op;
1622851890Sopenharmony_ci	unsigned char voice;
1722851890Sopenharmony_ci	unsigned char am;
1822851890Sopenharmony_ci	unsigned char vibrato;
1922851890Sopenharmony_ci	unsigned char do_sustain;
2022851890Sopenharmony_ci	unsigned char kbd_scale;
2122851890Sopenharmony_ci	unsigned char harmonic;
2222851890Sopenharmony_ci	unsigned char scale_level;
2322851890Sopenharmony_ci	unsigned char volume;
2422851890Sopenharmony_ci	unsigned char attack;
2522851890Sopenharmony_ci	unsigned char decay;
2622851890Sopenharmony_ci	unsigned char sustain;
2722851890Sopenharmony_ci	unsigned char release;
2822851890Sopenharmony_ci	unsigned char feedback;
2922851890Sopenharmony_ci	unsigned char connection;
3022851890Sopenharmony_ci	unsigned char left;
3122851890Sopenharmony_ci	unsigned char right;
3222851890Sopenharmony_ci	unsigned char waveform;
3322851890Sopenharmony_ci};
3422851890Sopenharmony_cistruct snd_dm_fm_note {
3522851890Sopenharmony_ci	unsigned char voice;
3622851890Sopenharmony_ci	unsigned char octave;
3722851890Sopenharmony_ci	unsigned int fnum;
3822851890Sopenharmony_ci	unsigned char key_on;
3922851890Sopenharmony_ci};
4022851890Sopenharmony_cistruct snd_dm_fm_params {
4122851890Sopenharmony_ci	unsigned char am_depth;
4222851890Sopenharmony_ci	unsigned char vib_depth;
4322851890Sopenharmony_ci	unsigned char kbd_split;
4422851890Sopenharmony_ci	unsigned char rhythm;
4522851890Sopenharmony_ci
4622851890Sopenharmony_ci	unsigned char bass;
4722851890Sopenharmony_ci	unsigned char snare;
4822851890Sopenharmony_ci	unsigned char tomtom;
4922851890Sopenharmony_ci	unsigned char cymbal;
5022851890Sopenharmony_ci	unsigned char hihat;
5122851890Sopenharmony_ci};
5222851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_INFO		_IOR('H', 0x20, struct snd_dm_fm_info)
5322851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_RESET		_IO ('H', 0x21)
5422851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_PLAY_NOTE	_IOW('H', 0x22, struct snd_dm_fm_note)
5522851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_SET_VOICE	_IOW('H', 0x23, struct snd_dm_fm_voice)
5622851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_SET_PARAMS	_IOW('H', 0x24, struct snd_dm_fm_params)
5722851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_SET_MODE	_IOW('H', 0x25, int)
5822851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_SET_CONNECTION	_IOW('H', 0x26, int)
5922851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_CLEAR_PATCHES	_IO ('H', 0x40)
6022851890Sopenharmony_ci#define SNDRV_DM_FM_OSS_IOCTL_RESET		0x20
6122851890Sopenharmony_ci#define SNDRV_DM_FM_OSS_IOCTL_PLAY_NOTE		0x21
6222851890Sopenharmony_ci#define SNDRV_DM_FM_OSS_IOCTL_SET_VOICE		0x22
6322851890Sopenharmony_ci#define SNDRV_DM_FM_OSS_IOCTL_SET_PARAMS	0x23
6422851890Sopenharmony_ci#define SNDRV_DM_FM_OSS_IOCTL_SET_MODE		0x24
6522851890Sopenharmony_ci#define SNDRV_DM_FM_OSS_IOCTL_SET_OPL		0x25
6622851890Sopenharmony_ci#define FM_KEY_SBI	"SBI\032"
6722851890Sopenharmony_ci#define FM_KEY_2OP	"2OP\032"
6822851890Sopenharmony_ci#define FM_KEY_4OP	"4OP\032"
6922851890Sopenharmony_cistruct sbi_patch {
7022851890Sopenharmony_ci	unsigned char prog;
7122851890Sopenharmony_ci	unsigned char bank;
7222851890Sopenharmony_ci	char key[4];
7322851890Sopenharmony_ci	char name[25];
7422851890Sopenharmony_ci	char extension[7];
7522851890Sopenharmony_ci	unsigned char data[32];
7622851890Sopenharmony_ci};
7722851890Sopenharmony_ci#endif
78