PicoWaveTracker/MidiDriver.h
2026-02-21 21:12:30 +01:00

34 lines
636 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;
};
extern MidiDriver midi;
#endif