blob: 2c2c833793851e3e59c7776103bcf7fd8ab02463 [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef __SOUND_ASOUND_FM_H
8#define __SOUND_ASOUND_FM_H
9#define SNDRV_DM_FM_MODE_OPL2 0x00
10#define SNDRV_DM_FM_MODE_OPL3 0x01
Ben Cheng655a7c02013-10-16 16:09:24 -070011struct snd_dm_fm_info {
Tao Baod7db5942015-01-28 10:07:51 -080012 unsigned char fm_mode;
13 unsigned char rhythm;
Ben Cheng655a7c02013-10-16 16:09:24 -070014};
Ben Cheng655a7c02013-10-16 16:09:24 -070015struct snd_dm_fm_voice {
Tao Baod7db5942015-01-28 10:07:51 -080016 unsigned char op;
17 unsigned char voice;
18 unsigned char am;
Tao Baod7db5942015-01-28 10:07:51 -080019 unsigned char vibrato;
20 unsigned char do_sustain;
21 unsigned char kbd_scale;
22 unsigned char harmonic;
Tao Baod7db5942015-01-28 10:07:51 -080023 unsigned char scale_level;
24 unsigned char volume;
25 unsigned char attack;
26 unsigned char decay;
Tao Baod7db5942015-01-28 10:07:51 -080027 unsigned char sustain;
28 unsigned char release;
29 unsigned char feedback;
30 unsigned char connection;
Tao Baod7db5942015-01-28 10:07:51 -080031 unsigned char left;
32 unsigned char right;
33 unsigned char waveform;
Ben Cheng655a7c02013-10-16 16:09:24 -070034};
Ben Cheng655a7c02013-10-16 16:09:24 -070035struct snd_dm_fm_note {
Tao Baod7db5942015-01-28 10:07:51 -080036 unsigned char voice;
37 unsigned char octave;
38 unsigned int fnum;
Tao Baod7db5942015-01-28 10:07:51 -080039 unsigned char key_on;
Ben Cheng655a7c02013-10-16 16:09:24 -070040};
41struct snd_dm_fm_params {
Tao Baod7db5942015-01-28 10:07:51 -080042 unsigned char am_depth;
Tao Baod7db5942015-01-28 10:07:51 -080043 unsigned char vib_depth;
44 unsigned char kbd_split;
45 unsigned char rhythm;
46 unsigned char bass;
Tao Baod7db5942015-01-28 10:07:51 -080047 unsigned char snare;
48 unsigned char tomtom;
49 unsigned char cymbal;
50 unsigned char hihat;
Ben Cheng655a7c02013-10-16 16:09:24 -070051};
52#define SNDRV_DM_FM_IOCTL_INFO _IOR('H', 0x20, struct snd_dm_fm_info)
Tao Baod7db5942015-01-28 10:07:51 -080053#define SNDRV_DM_FM_IOCTL_RESET _IO('H', 0x21)
Ben Cheng655a7c02013-10-16 16:09:24 -070054#define SNDRV_DM_FM_IOCTL_PLAY_NOTE _IOW('H', 0x22, struct snd_dm_fm_note)
Ben Cheng655a7c02013-10-16 16:09:24 -070055#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)
Tao Baod7db5942015-01-28 10:07:51 -080059#define SNDRV_DM_FM_IOCTL_CLEAR_PATCHES _IO('H', 0x40)
Ben Cheng655a7c02013-10-16 16:09:24 -070060#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
Ben Cheng655a7c02013-10-16 16:09:24 -070063#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"
Ben Cheng655a7c02013-10-16 16:09:24 -070067#define FM_KEY_2OP "2OP\032"
68#define FM_KEY_4OP "4OP\032"
69struct sbi_patch {
Tao Baod7db5942015-01-28 10:07:51 -080070 unsigned char prog;
Tao Baod7db5942015-01-28 10:07:51 -080071 unsigned char bank;
72 char key[4];
73 char name[25];
74 char extension[7];
Tao Baod7db5942015-01-28 10:07:51 -080075 unsigned char data[32];
Ben Cheng655a7c02013-10-16 16:09:24 -070076};
77#endif