123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- /*
- **********************************************************************
- * isblive_mid.h
- * Copyright 1999, 2000 Creative Labs, Inc.
- *
- **********************************************************************
- *
- * Date Author Summary of changes
- * ---- ------ ------------------
- * October 20, 1999 Bertrand Lee base code release
- *
- **********************************************************************
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
- * USA.
- *
- **********************************************************************
- */
- #ifndef _ICARDMIDI_H
- #define _ICARDMIDI_H
- /* MIDI defines */
- #define MIDI_DATA_FIRST 0x00
- #define MIDI_DATA_LAST 0x7F
- #define MIDI_STATUS_FIRST 0x80
- #define MIDI_STATUS_LAST 0xFF
- /* Channel status bytes */
- #define MIDI_STATUS_CHANNEL_FIRST 0x80
- #define MIDI_STATUS_CHANNEL_LAST 0xE0
- #define MIDI_STATUS_CHANNEL_MASK 0xF0
- /* Channel voice messages */
- #define MIDI_VOICE_NOTE_OFF 0x80
- #define MIDI_VOICE_NOTE_ON 0x90
- #define MIDI_VOICE_POLY_PRESSURE 0xA0
- #define MIDI_VOICE_CONTROL_CHANGE 0xB0
- #define MIDI_VOICE_PROGRAM_CHANGE 0xC0
- #define MIDI_VOICE_CHANNEL_PRESSURE 0xD0
- #define MIDI_VOICE_PITCH_BEND 0xE0
- /* Channel mode messages */
- #define MIDI_MODE_CHANNEL MIDI_VOICE_CONTROL_CHANGE
- /* System status bytes */
- #define MIDI_STATUS_SYSTEM_FIRST 0xF0
- #define MIDI_STATUS_SYSTEM_LAST 0xFF
- /* System exclusive messages */
- #define MIDI_SYSEX_BEGIN 0xF0
- #define MIDI_SYSEX_EOX 0xF7
- /* System common messages */
- #define MIDI_COMMON_TCQF 0xF1 /* Time code quarter frame */
- #define MIDI_COMMON_SONG_POSITION 0xF2
- #define MIDI_COMMON_SONG_SELECT 0xF3
- #define MIDI_COMMON_UNDEFINED_F4 0xF4
- #define MIDI_COMMON_UNDEFINED_F5 0xF5
- #define MIDI_COMMON_TUNE_REQUEST 0xF6
- /* System real-time messages */
- #define MIDI_RTIME_TIMING_CLOCK 0xF8
- #define MIDI_RTIME_UNDEFINED_F9 0xF9
- #define MIDI_RTIME_START 0xFA
- #define MIDI_RTIME_CONTINUE 0xFB
- #define MIDI_RTIME_STOP 0xFC
- #define MIDI_RTIME_UNDEFINED_FD 0xFD
- #define MIDI_RTIME_ACTIVE_SENSING 0xFE
- #define MIDI_RTIME_SYSTEM_RESET 0xFF
- /* Flags for flags parm of midiOutCachePatches(), midiOutCacheDrumPatches() */
- #define MIDI_CACHE_ALL 1
- #define MIDI_CACHE_BESTFIT 2
- #define MIDI_CACHE_QUERY 3
- #define MIDI_UNCACHE 4
- /* Event declarations for MPU IRQ Callbacks */
- #define ICARDMIDI_INLONGDATA 0x00000001 /* MIM_LONGDATA */
- #define ICARDMIDI_INLONGERROR 0x00000002 /* MIM_LONGERROR */
- #define ICARDMIDI_OUTLONGDATA 0x00000004 /* MOM_DONE for MPU OUT buffer */
- #define ICARDMIDI_INDATA 0x00000010 /* MIM_DATA */
- #define ICARDMIDI_INDATAERROR 0x00000020 /* MIM_ERROR */
- /* Declaration for flags in CARDMIDIBUFFERHDR */
- /* Make it the same as MHDR_DONE, MHDR_INQUEUE in mmsystem.h */
- #define MIDIBUF_DONE 0x00000001
- #define MIDIBUF_INQUEUE 0x00000004
- /* Declaration for msg parameter in midiCallbackFn */
- #define ICARDMIDI_OUTBUFFEROK 0x00000001
- #define ICARDMIDI_INMIDIOK 0x00000002
- /* Declaration for technology in struct midi_caps */
- #define MT_MIDIPORT 0x00000001 /* In original MIDIOUTCAPS structure */
- #define MT_FMSYNTH 0x00000004 /* In original MIDIOUTCAPS structure */
- #define MT_AWESYNTH 0x00001000
- #define MT_PCISYNTH 0x00002000
- #define MT_PCISYNTH64 0x00004000
- #define CARDMIDI_AWEMASK 0x0000F000
- enum LocalErrorCode
- {
- CTSTATUS_NOTENABLED = 0x7000,
- CTSTATUS_READY,
- CTSTATUS_BUSY,
- CTSTATUS_DATAAVAIL,
- CTSTATUS_NODATA,
- CTSTATUS_NEXT_BYTE
- };
- /* MIDI data block header */
- struct midi_hdr
- {
- u8 *reserved; /* Pointer to original locked data block */
- u32 bufferlength; /* Length of data in data block */
- u32 bytesrecorded; /* Used for input only */
- u32 user; /* For client's use */
- u32 flags; /* Assorted flags (see defines) */
- struct list_head list; /* Reserved for driver */
- u8 *data; /* Second copy of first pointer */
- };
- /* Enumeration for SetControl */
- enum
- {
- MIDIOBJVOLUME = 0x1,
- MIDIQUERYACTIVEINST
- };
- struct midi_queue
- {
- struct midi_queue *next;
- u32 qtype; /* 0 = short message, 1 = long data */
- u32 length;
- u32 sizeLeft;
- u8 *midibyte;
- unsigned long refdata;
- };
- struct midi_openinfo
- {
- u32 cbsize;
- u32 flags;
- unsigned long refdata;
- u32 streamid;
- };
- int emu10k1_midi_callback(unsigned long , unsigned long, unsigned long *);
- #endif /* _ICARDMIDI_H */
|