PicoWaveTracker/MidiDriver.h
2026-02-22 23:03:03 +01:00

35 lines
667 B
C++

#ifndef MIDI_DRIVER_H
#define MIDI_DRIVER_H
#include <Arduino.h>
#include <pico/mutex.h>
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