Linux-2.6.12-rc2
[linux-2.6/kvm.git] / sound / oss / dm.h
blob14a90593c44fe665889e61b1b885acfa3ce55a02
1 #ifndef _DRIVERS_SOUND_DM_H
2 #define _DRIVERS_SOUND_DM_H
4 /*
5 * Definitions of the 'direct midi sound' interface used
6 * by the newer commercial OSS package. We should export
7 * this to userland somewhere in glibc later.
8 */
11 * Data structure composing an FM "note" or sound event.
14 struct dm_fm_voice
16 u8 op;
17 u8 voice;
18 u8 am;
19 u8 vibrato;
20 u8 do_sustain;
21 u8 kbd_scale;
22 u8 harmonic;
23 u8 scale_level;
24 u8 volume;
25 u8 attack;
26 u8 decay;
27 u8 sustain;
28 u8 release;
29 u8 feedback;
30 u8 connection;
31 u8 left;
32 u8 right;
33 u8 waveform;
37 * This describes an FM note by its voice, octave, frequency number (10bit)
38 * and key on/off.
41 struct dm_fm_note
43 u8 voice;
44 u8 octave;
45 u32 fnum;
46 u8 key_on;
50 * FM parameters that apply globally to all voices, and thus are not "notes"
53 struct dm_fm_params
55 u8 am_depth;
56 u8 vib_depth;
57 u8 kbd_split;
58 u8 rhythm;
60 /* This block is the percussion instrument data */
61 u8 bass;
62 u8 snare;
63 u8 tomtom;
64 u8 cymbal;
65 u8 hihat;
69 * FM mode ioctl settings
72 #define FM_IOCTL_RESET 0x20
73 #define FM_IOCTL_PLAY_NOTE 0x21
74 #define FM_IOCTL_SET_VOICE 0x22
75 #define FM_IOCTL_SET_PARAMS 0x23
76 #define FM_IOCTL_SET_MODE 0x24
77 #define FM_IOCTL_SET_OPL 0x25
79 #endif