comparison data/midi/MIDIEvent.h @ 1069:32ab6c48efaa

Merge from branch tonioni
author Chris Cannam
date Mon, 20 Apr 2015 09:11:34 +0100
parents cc27f35aa75c
children 48e9f538e6e9
comparison
equal deleted inserted replaced
1036:682d64f05e72 1069:32ab6c48efaa
23 #define _MIDI_EVENT_H_ 23 #define _MIDI_EVENT_H_
24 24
25 #include <QString> 25 #include <QString>
26 #include <string> 26 #include <string>
27 #include <iostream> 27 #include <iostream>
28 #include <stdexcept>
29
28 #include "base/Debug.h" 30 #include "base/Debug.h"
29 31
30 typedef unsigned char MIDIByte; 32 typedef unsigned char MIDIByte;
31 33
32 namespace MIDIConstants 34 namespace MIDIConstants
116 118
117 class MIDIEvent 119 class MIDIEvent
118 { 120 {
119 public: 121 public:
120 MIDIEvent(unsigned long deltaTime, 122 MIDIEvent(unsigned long deltaTime,
121 MIDIByte eventCode, 123 int eventCode,
122 MIDIByte data1 = 0, 124 int data1 = 0,
123 MIDIByte data2 = 0) : 125 int data2 = 0) :
124 m_deltaTime(deltaTime), 126 m_deltaTime(deltaTime),
125 m_duration(0), 127 m_duration(0),
126 m_eventCode(eventCode),
127 m_data1(data1),
128 m_data2(data2),
129 m_metaEventCode(0) 128 m_metaEventCode(0)
130 { } 129 {
130 if (eventCode < 0 || eventCode > 0xff ||
131 data1 < 0 || data1 > 0xff ||
132 data2 < 0 || data2 > 0xff) {
133 throw std::domain_error("not all args within byte range");
134 }
135 m_eventCode = MIDIByte(eventCode);
136 m_data1 = MIDIByte(data1);
137 m_data2 = MIDIByte(data2);
138 }
131 139
132 MIDIEvent(unsigned long deltaTime, 140 MIDIEvent(unsigned long deltaTime,
133 MIDIByte eventCode, 141 MIDIByte eventCode,
134 MIDIByte metaEventCode, 142 MIDIByte metaEventCode,
135 const std::string &metaMessage) : 143 const std::string &metaMessage) :