CLAM-Development
1.4.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
src
Tools
MIDIIO
MIDIEnums.hxx
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2001-2004 MUSIC TECHNOLOGY GROUP (MTG)
3
* UNIVERSITAT POMPEU FABRA
4
*
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
*
20
*/
21
22
#ifndef __MIDIEnums__
23
#define __MIDIEnums__
24
25
namespace
CLAM {
26
27
class
MIDI
28
{
29
public
:
34
enum
Message
{
35
eNoteOff
= 0,
36
eNoteOn
= 1,
37
ePolyAftertouch
= 2,
38
eControlChange
= 3,
39
eProgramChange
= 4,
40
eAftertouch
= 5,
41
ePitchbend
= 6,
42
eSystem
= 7,
43
// and some special stuff
44
eNoteOnOff
= 8
45
};
46
47
struct
MessageInfo
48
{
49
int
length
;
50
const
char
*
name
;
51
const
char
*
field
[3];
52
};
53
58
enum
SysMsg
{
59
eExclusiveStart
= 0,
60
eQuarterFrams
= 1,
61
eSongPosition
= 2,
62
eSongSelect
= 3,
63
eUndefined1
= 4,
64
eUndefined2
= 5,
65
eTuneRequest
= 6,
66
eExclusiveEnd
= 7,
67
eTimingCloce
= 8,
68
eTimingTice
= 9,
69
eStart
= 10,
70
eContinue
= 11,
71
eStop
= 12,
72
eUndefined3
= 13,
73
eActiveSensing
= 14,
74
eSystemReset
= 15
75
};
76
81
static
Message
StatusByteToMessage
(
const
unsigned
char
& byte)
82
{
83
return
(
Message
)((byte >> 4)&7);
84
}
85
90
static
SysMsg
StatusByteToSysMsg
(
const
unsigned
char
& b)
91
{
92
return
(
SysMsg
)(b&15);
93
}
94
95
static
const
MessageInfo
&
GetMessageInfo
(
Message
msg)
96
{
97
return
sMessageInfo[
int
(msg)];
98
}
99
100
static
const
MessageInfo
&
GetMessageInfo
(
int
msg)
101
{
102
return
sMessageInfo[msg];
103
}
104
private
:
105
static
const
MessageInfo sMessageInfo[9];
106
107
friend
class
MIDIDevice
;
108
109
static
const
int
sNBytesPerSysMsg[16];
110
111
};
112
113
}
114
115
#endif
116
Generated by
1.8.1