28 #define MIDI_IN_DEVICE_BASE 128
29 #define MIDI_OUT_DEVICE_BASE 256
31 #define MIDI_IN_DEVICE_BASE 4096
32 #define MIDI_OUT_DEVICE_BASE 8192
34 #define MIDI_IN_FILE_BASE 12288
35 #define MIDI_OUT_FILE_BASE 16384
36 #define MIDI_NUM_DEVICES 4095
40 #define MD_DELTASTAMP 2
41 #define MD_RELATIVESTAMP 3
42 #define MD_DELTATICKS 4
43 #define MD_RELATIVETICKS 5
45 #define MD_STAMPING_MASK 0xf
47 #define MD_CHANNELMASK 0x0F
48 #define MD_STATUSMASK 0xF0
50 #define MD_CHANNELVOICE 0x80
51 #define MD_NOTEOFF 0x80
52 #define MD_NOTEON 0x90
53 #define MD_POLYKEYPRESSURE 0xA0
54 #define MD_CONTROLCHANGE 0xB0
55 #define MD_CHANNELMODESELECT 0xB0
56 #define MD_PROGRAMCHANGE 0xC0
57 #define MD_CHANNELPRESSURE 0xD0
58 #define MD_PITCHBENDCHANGE 0xE0
64 #define MD_SYSTEMREALTIME 0xF8
65 #define MD_TIMINGCLOCK 0xF8
66 #define MD_UNDEFINED3 0xF9
68 #define MD_CONTINUE 0xFB
70 #define MD_UNDEFINED4 0xFD
71 #define MD_ACTIVESENSING 0xFE
72 #define MD_SYSTEMRESET 0xFF
74 #define MD_SYSTEMCOMMON 0xF1
75 #define MD_TIMECODEQUARTERFRAME 0xF1
76 #define MD_SONGPOSITIONPOINTER 0xF2
77 #define MD_SONGSELECT 0xF3
78 #define MD_UNDEFINED1 0xF4
79 #define MD_UNDEFINED2 0xF5
80 #define MD_TUNEREQUEST 0xF6
83 #define MAX_SYSEXMSG_LEN 128
85 #define SYSEX_TYPE_NONE (0)
86 #define SYSEX_TYPE_BARMARKER (1)
88 #define MESSAGE_VALUE_RAW (-1)
89 #define MESSAGE_VALUE_NORM (-2)
90 #define MESSAGE_DONTCARE (-3)
91 #define MESSAGE_STOP (-4)
108 explicit midiEvent(
const int) { sysexlen = 0; trackNum=-1; }
146 if (msg[0] == mdv.
msg[0] &&
147 msg[1] == mdv.
msg[1] &&
148 msg[2] == mdv.
msg[2] &&
172 virtual int numInterfaces(
int indevices);
173 virtual const char *interfaceName(
int n,
int indevices);
175 virtual int openPort(
const char *portname,
int read);
176 virtual int openFile(
const char *
filename,
int read,
178 virtual int openFile(
const char *filename,
185 void closePort(
int port);
187 int hasMidiInput(
int port,
uint64 up_to_time,
190 void getMidiInput(
int port,
195 int sendMidiOutput(
int port,
199 void clearQueue(
int port);
202 uint64 getLastFileTime(
int port);
204 virtual uint64 getTime(
int port);
205 virtual void setTimerCallback(
void (*callback)(
void *));
207 virtual void startRecordTimer(
void *,
int time);
208 virtual void stopRecordTimer(
void *);
209 void setPrintMessage(
int);
211 virtual uint64 markOffsetTime(
int port);
213 int identifySysex(
const char *,
int len,
float *
value=0);
219 { myBarMarkerMessage =
a; }
225 virtual int hasDeviceInput(
int port,
uint64 up_to_time,
227 int hasFileInput(
int port,
uint64 up_to_time,
230 virtual void getDeviceInput(
int port,
234 void getFileInput(
int port,
238 virtual int sendDeviceOutput(
int port,
242 int sendFileOutput(
int port,
246 virtual void clearDeviceQueue(
int port);
247 void clearFileQueue(
int port);
249 virtual void closeDevice(
int port);
250 void closeFile(
int port);
259 const int *myBarMarkerMessage;
260 void printSysexMessage(
int *array);
int operator==(const midiEvent &mdv)
GT_API const UT_StringHolder filename
char sysexmsg[MAX_SYSEXMSG_LEN]
GT_API const UT_StringHolder time
GLboolean GLboolean GLboolean GLboolean a
unsigned long long uint64
UT_API UT_Midi * UTgetMidi()
void setBarMarkerMessage(const int *a)
UT_API void UTsetMidi(UT_Midi *)
midiEvent(const midiEvent &mdv)
LeafData & operator=(const LeafData &)=delete
that also have some descendant prim *whose name begins with bar
midiEvent & operator=(const midiEvent &mdv)