dm.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
- #ifndef _DRIVERS_SOUND_DM_H
- #define _DRIVERS_SOUND_DM_H
- /*
- * Definitions of the 'direct midi sound' interface used
- * by the newer commercial OSS package. We should export
- * this to userland somewhere in glibc later.
- */
- /*
- * Data structure composing an FM "note" or sound event.
- */
- struct dm_fm_voice
- {
- u8 op;
- u8 voice;
- u8 am;
- u8 vibrato;
- u8 do_sustain;
- u8 kbd_scale;
- u8 harmonic;
- u8 scale_level;
- u8 volume;
- u8 attack;
- u8 decay;
- u8 sustain;
- u8 release;
- u8 feedback;
- u8 connection;
- u8 left;
- u8 right;
- u8 waveform;
- };
- /*
- * This describes an FM note by its voice, octave, frequency number (10bit)
- * and key on/off.
- */
- struct dm_fm_note
- {
- u8 voice;
- u8 octave;
- u32 fnum;
- u8 key_on;
- };
- /*
- * FM parameters that apply globally to all voices, and thus are not "notes"
- */
- struct dm_fm_params
- {
- u8 am_depth;
- u8 vib_depth;
- u8 kbd_split;
- u8 rhythm;
- /* This block is the percussion instrument data */
- u8 bass;
- u8 snare;
- u8 tomtom;
- u8 cymbal;
- u8 hihat;
- };
- /*
- * FM mode ioctl settings
- */
-
- #define FM_IOCTL_RESET 0x20
- #define FM_IOCTL_PLAY_NOTE 0x21
- #define FM_IOCTL_SET_VOICE 0x22
- #define FM_IOCTL_SET_PARAMS 0x23
- #define FM_IOCTL_SET_MODE 0x24
- #define FM_IOCTL_SET_OPL 0x25
- #endif