Line data Source code
1 : #pragma once 2 : 3 : #include "MIDI_Parser.hpp" 4 : #include "SysExBuffer.hpp" 5 : 6 : BEGIN_CS_NAMESPACE 7 : 8 108 : class SerialMIDI_Parser : public MIDI_Parser { 9 : public: 10 : MIDIReadEvent parse(uint8_t midibyte); 11 : 12 : #if !IGNORE_SYSEX 13 63 : SysExMessage getSysExMessage() const override { 14 63 : return {sysexbuffer.getBuffer(), sysexbuffer.getLength(), 0}; 15 : } 16 : #endif 17 : 18 : protected: 19 : #if !IGNORE_SYSEX 20 : SysExBuffer sysexbuffer; 21 : 22 357 : bool addSysExByte(uint8_t data) { return sysexbuffer.add(data); } 23 25 : void startSysEx() { sysexbuffer.start(); } 24 25 : void endSysEx() { sysexbuffer.end(); } 25 : #endif 26 : 27 : private: 28 54 : bool thirdByte = false; 29 : }; 30 : 31 : END_CS_NAMESPACE