ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / sound / oss / emu10k1 / midi.h
1 /*     
2  **********************************************************************
3  *     midi.h
4  *     Copyright 1999, 2000 Creative Labs, Inc. 
5  * 
6  ********************************************************************** 
7  * 
8  *     Date                 Author          Summary of changes 
9  *     ----                 ------          ------------------ 
10  *     October 20, 1999     Bertrand Lee    base code release 
11  * 
12  ********************************************************************** 
13  * 
14  *     This program is free software; you can redistribute it and/or 
15  *     modify it under the terms of the GNU General Public License as 
16  *     published by the Free Software Foundation; either version 2 of 
17  *     the License, or (at your option) any later version. 
18  * 
19  *     This program is distributed in the hope that it will be useful, 
20  *     but WITHOUT ANY WARRANTY; without even the implied warranty of 
21  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
22  *     GNU General Public License for more details. 
23  * 
24  *     You should have received a copy of the GNU General Public 
25  *     License along with this program; if not, write to the Free 
26  *     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, 
27  *     USA. 
28  * 
29  ********************************************************************** 
30  */ 
31
32 #ifndef _MIDI_H
33 #define _MIDI_H
34
35 #define FMODE_MIDI_SHIFT 3
36 #define FMODE_MIDI_READ  (FMODE_READ << FMODE_MIDI_SHIFT)
37 #define FMODE_MIDI_WRITE (FMODE_WRITE << FMODE_MIDI_SHIFT)
38
39 #define MIDIIN_STATE_STARTED 0x00000001
40 #define MIDIIN_STATE_STOPPED 0x00000002
41
42 #define MIDIIN_BUFLEN 1024
43
44 struct emu10k1_mididevice
45 {
46         struct emu10k1_card *card;
47         u32 mistate;
48         wait_queue_head_t oWait;
49         wait_queue_head_t iWait;
50         s8 iBuf[MIDIIN_BUFLEN];
51         u16 ird, iwr, icnt;
52         struct list_head mid_hdrs;
53 };
54
55 /* uncomment next line to use midi port on Audigy drive */
56 //#define USE_AUDIGY_DRIVE_MIDI
57
58 #ifdef USE_AUDIGY_DRIVE_MIDI
59 #define A_MUDATA        A_MUDATA2
60 #define A_MUCMD         A_MUCMD2
61 #define A_MUSTAT        A_MUCMD2
62 #define A_IPR_MIDITRANSBUFEMPTY A_IPR_MIDITRANSBUFEMPTY2
63 #define A_IPR_MIDIRECVBUFEMPTY  A_IPR_MIDIRECVBUFEMPTY2
64 #define A_INTE_MIDITXENABLE     A_INTE_MIDITXENABLE2
65 #define A_INTE_MIDIRXENABLE     A_INTE_MIDIRXENABLE2
66 #else
67 #define A_MUDATA        A_MUDATA1
68 #define A_MUCMD         A_MUCMD1
69 #define A_MUSTAT        A_MUCMD1
70 #define A_IPR_MIDITRANSBUFEMPTY A_IPR_MIDITRANSBUFEMPTY1
71 #define A_IPR_MIDIRECVBUFEMPTY  A_IPR_MIDIRECVBUFEMPTY1
72 #define A_INTE_MIDITXENABLE     A_INTE_MIDITXENABLE1
73 #define A_INTE_MIDIRXENABLE     A_INTE_MIDIRXENABLE1
74 #endif
75
76
77 #endif /* _MIDI_H */
78