#ifndef MIDI_DRIVER_H #define MIDI_DRIVER_H #include #include class MidiDriver { public: MidiDriver(); void begin(); void update(); volatile int lastInputNote; volatile int lastInputVelocity; void sendNoteOn(uint8_t note, uint8_t velocity, uint8_t channel); void sendNoteOff(uint8_t note, uint8_t channel); void sendRealtime(uint8_t status); void panic(uint8_t channel); void lock(); void unlock(); private: mutex_t _mutex; uint8_t _runningStatus; uint8_t _byteIndex; uint8_t _data1; uint8_t _data2; bool activeNotes[16][128]; }; extern MidiDriver midi; #endif