PlatformIO package of the Teensy core framework compatible with GCC 10 & C++20
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- #ifndef MIDIUSB_h
- #define MIDIUSB_h
-
- // For compatibility with Arduino's MIDIUSB library
-
- #include "usb_midi.h"
-
- #ifdef __cplusplus
- #if !defined(USB_MIDI) && !defined(USB_MIDI4) && !defined(USB_MIDI16) && !defined(USB_MIDI_SERIAL) && !defined(USB_MIDI4_SERIAL) && !defined(USB_MIDI16_SERIAL) && !defined(USB_MIDI_AUDIO_SERIAL) && !defined(USB_MIDI16_AUDIO_SERIAL) && !defined(USB_EVERYTHING)
- #error "Please select MIDI in Tools > USB Type to use MIDIUSB.h"
- #endif
-
- typedef struct {
- union {
- struct {
- uint8_t header;
- uint8_t byte1;
- uint8_t byte2;
- uint8_t byte3;
- };
- uint32_t word;
- };
- } midiEventPacket_t;
-
-
- class MIDI_
- {
- public:
- constexpr MIDI_(void) { }
- uint32_t available(void) {
- return usb_midi_available();
- }
- midiEventPacket_t read(void) {
- midiEventPacket_t event;
- event.word = usb_midi_read_message();
- return event;
- }
- void flush(void) {
- usb_midi_flush_output();
- }
- void sendMIDI(midiEventPacket_t event) {
- usb_midi_write_packed(event.word);
- }
- size_t write(const uint8_t *buffer, size_t size) {
- // TODO - is this really needed?
- return 0;
- }
- operator bool() {
- // TODO - is this really needed?
- return true;
- }
- };
- extern MIDI_ MidiUSB;
-
- #endif // __cplusplus
- #endif // MIDIUSB_h
|