122851890Sopenharmony_ci/****************************************************************************
222851890Sopenharmony_ci ****************************************************************************
322851890Sopenharmony_ci ***
422851890Sopenharmony_ci ***   This header was automatically generated from a Linux kernel header
522851890Sopenharmony_ci ***   of the same name, to make information necessary for userspace to
622851890Sopenharmony_ci ***   call into the kernel available to libc.  It contains only constants,
722851890Sopenharmony_ci ***   structures, and macros generated from the original header, and thus,
822851890Sopenharmony_ci ***   contains no copyrightable information.
922851890Sopenharmony_ci ***
1022851890Sopenharmony_ci ***   To edit the content of this header, modify the corresponding
1122851890Sopenharmony_ci ***   source file (e.g. under external/kernel-headers/original/) then
1222851890Sopenharmony_ci ***   run bionic/libc/kernel/tools/update_all.py
1322851890Sopenharmony_ci ***
1422851890Sopenharmony_ci ***   Any manual change here will be lost the next time this script will
1522851890Sopenharmony_ci ***   be run. You've been warned!
1622851890Sopenharmony_ci ***
1722851890Sopenharmony_ci ****************************************************************************
1822851890Sopenharmony_ci ****************************************************************************/
1922851890Sopenharmony_ci#ifndef __SOUND_ASOUND_FM_H
2022851890Sopenharmony_ci#define __SOUND_ASOUND_FM_H
2122851890Sopenharmony_ci#define SNDRV_DM_FM_MODE_OPL2 0x00
2222851890Sopenharmony_ci#define SNDRV_DM_FM_MODE_OPL3 0x01
2322851890Sopenharmony_cistruct snd_dm_fm_info {
2422851890Sopenharmony_ci  unsigned char fm_mode;
2522851890Sopenharmony_ci  unsigned char rhythm;
2622851890Sopenharmony_ci};
2722851890Sopenharmony_cistruct snd_dm_fm_voice {
2822851890Sopenharmony_ci  unsigned char op;
2922851890Sopenharmony_ci  unsigned char voice;
3022851890Sopenharmony_ci  unsigned char am;
3122851890Sopenharmony_ci  unsigned char vibrato;
3222851890Sopenharmony_ci  unsigned char do_sustain;
3322851890Sopenharmony_ci  unsigned char kbd_scale;
3422851890Sopenharmony_ci  unsigned char harmonic;
3522851890Sopenharmony_ci  unsigned char scale_level;
3622851890Sopenharmony_ci  unsigned char volume;
3722851890Sopenharmony_ci  unsigned char attack;
3822851890Sopenharmony_ci  unsigned char decay;
3922851890Sopenharmony_ci  unsigned char sustain;
4022851890Sopenharmony_ci  unsigned char release;
4122851890Sopenharmony_ci  unsigned char feedback;
4222851890Sopenharmony_ci  unsigned char connection;
4322851890Sopenharmony_ci  unsigned char left;
4422851890Sopenharmony_ci  unsigned char right;
4522851890Sopenharmony_ci  unsigned char waveform;
4622851890Sopenharmony_ci};
4722851890Sopenharmony_cistruct snd_dm_fm_note {
4822851890Sopenharmony_ci  unsigned char voice;
4922851890Sopenharmony_ci  unsigned char octave;
5022851890Sopenharmony_ci  unsigned int fnum;
5122851890Sopenharmony_ci  unsigned char key_on;
5222851890Sopenharmony_ci};
5322851890Sopenharmony_cistruct snd_dm_fm_params {
5422851890Sopenharmony_ci  unsigned char am_depth;
5522851890Sopenharmony_ci  unsigned char vib_depth;
5622851890Sopenharmony_ci  unsigned char kbd_split;
5722851890Sopenharmony_ci  unsigned char rhythm;
5822851890Sopenharmony_ci  unsigned char bass;
5922851890Sopenharmony_ci  unsigned char snare;
6022851890Sopenharmony_ci  unsigned char tomtom;
6122851890Sopenharmony_ci  unsigned char cymbal;
6222851890Sopenharmony_ci  unsigned char hihat;
6322851890Sopenharmony_ci};
6422851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_INFO _IOR('H', 0x20, struct snd_dm_fm_info)
6522851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_RESET _IO('H', 0x21)
6622851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_PLAY_NOTE _IOW('H', 0x22, struct snd_dm_fm_note)
6722851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_SET_VOICE _IOW('H', 0x23, struct snd_dm_fm_voice)
6822851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_SET_PARAMS _IOW('H', 0x24, struct snd_dm_fm_params)
6922851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_SET_MODE _IOW('H', 0x25, int)
7022851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_SET_CONNECTION _IOW('H', 0x26, int)
7122851890Sopenharmony_ci#define SNDRV_DM_FM_IOCTL_CLEAR_PATCHES _IO('H', 0x40)
7222851890Sopenharmony_ci#define SNDRV_DM_FM_OSS_IOCTL_RESET 0x20
7322851890Sopenharmony_ci#define SNDRV_DM_FM_OSS_IOCTL_PLAY_NOTE 0x21
7422851890Sopenharmony_ci#define SNDRV_DM_FM_OSS_IOCTL_SET_VOICE 0x22
7522851890Sopenharmony_ci#define SNDRV_DM_FM_OSS_IOCTL_SET_PARAMS 0x23
7622851890Sopenharmony_ci#define SNDRV_DM_FM_OSS_IOCTL_SET_MODE 0x24
7722851890Sopenharmony_ci#define SNDRV_DM_FM_OSS_IOCTL_SET_OPL 0x25
7822851890Sopenharmony_ci#define FM_KEY_SBI "SBI\032"
7922851890Sopenharmony_ci#define FM_KEY_2OP "2OP\032"
8022851890Sopenharmony_ci#define FM_KEY_4OP "4OP\032"
8122851890Sopenharmony_cistruct sbi_patch {
8222851890Sopenharmony_ci  unsigned char prog;
8322851890Sopenharmony_ci  unsigned char bank;
8422851890Sopenharmony_ci  char key[4];
8522851890Sopenharmony_ci  char name[25];
8622851890Sopenharmony_ci  char extension[7];
8722851890Sopenharmony_ci  unsigned char data[32];
8822851890Sopenharmony_ci};
8922851890Sopenharmony_ci#endif
90