8 #ifndef _RNBO_MidiEvent_H_
9 #define _RNBO_MidiEvent_H_
28 , _eventTarget(
nullptr)
36 : _eventTime(eventTime)
37 , _portIndex(portIndex)
38 , _eventTarget(eventTarget)
41 _midiData[0] = uint8_t(b1);
42 _midiData[1] = uint8_t(b2);
43 _midiData[2] = uint8_t(b3);
45 int status = b1 & 0xF0;
46 if (status == 0xC0 || status == 0xD0 || b1 == 0xF1 || b1 == 0xF3) {
49 }
else if ((b1 >= 0xF8 && b1 <= 0xFF) || b1 == 0xF6) {
59 : _eventTime(eventTime)
60 , _portIndex(portIndex)
61 , _eventTarget(eventTarget)
63 const Index maxlen =
sizeof(_midiData) /
sizeof(_midiData[0]);
64 for (
Index i = 0; i < maxlen; i++) {
67 _length = length > maxlen ? maxlen : length;
69 for (
Index i = 0; i < _length; i++) {
70 _midiData[i] = data[i];
74 bool operator==(
const MidiEvent& rhs)
const
76 return rhs.getTime() == getTime()
77 && rhs.getPortIndex() == getPortIndex()
78 && rhs.getData() == getData()
79 && rhs.getLength() == getLength()
80 && rhs._eventTarget == _eventTarget;
83 int getPortIndex()
const {
return _portIndex; }
85 Index getLength()
const {
return _length; }
88 EventTarget* getEventTarget()
const {
return _eventTarget; }
91 void dumpEvent()
const {
101 uint8_t _midiData[3];
103 friend class EventVariant;
105 EventTarget* _eventTarget;
113 #endif // #ifndef _RNBO_MidiEvent_H_