Control Surface
pin-t-adl
MIDI Control Surface library for Arduino
src
MIDI_Interfaces
USBMIDI
USBMIDI_Adafruit_TinyUSB.hpp
Go to the documentation of this file.
1
#include <
AH/Containers/Array.hpp
>
2
#include <Settings/NamespaceSettings.hpp>
3
4
#include <Adafruit_TinyUSB.h>
5
6
BEGIN_CS_NAMESPACE
7
8
struct
USBDeviceMIDIBackend
{
9
using
MIDIUSBPacket_t
=
AH::Array<uint8_t, 4>
;
10
void
begin
() {
11
#if defined(ARDUINO_ARCH_MBED) && defined(ARDUINO_ARCH_RP2040)
12
// Manual begin() is required on core without built-in support for TinyUSB such as mbed rp2040
13
TinyUSB_Device_Init(0);
14
#endif
15
backend
.begin();
16
}
17
MIDIUSBPacket_t
read
() {
18
MIDIUSBPacket_t
packet {};
19
backend
.readPacket(packet.data);
20
return
packet;
21
}
22
void
write
(
MIDIUSBPacket_t
packet) {
backend
.writePacket(packet.
data
); }
23
void
sendNow
() {
backend
.flush(); }
24
bool
preferImmediateSend
() {
return
false
; }
25
26
Adafruit_USBD_MIDI
backend
;
27
};
28
29
END_CS_NAMESPACE
Array.hpp
END_CS_NAMESPACE
#define END_CS_NAMESPACE
Definition:
Settings/NamespaceSettings.hpp:10
BEGIN_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
Definition:
Settings/NamespaceSettings.hpp:9
AH::Array< uint8_t, 4 >
AH::Array::data
T data[N]
Definition:
Array.hpp:37
USBDeviceMIDIBackend
Definition:
USBMIDI_Adafruit_TinyUSB.hpp:8
USBDeviceMIDIBackend::sendNow
void sendNow()
Definition:
USBMIDI_Adafruit_TinyUSB.hpp:23
USBDeviceMIDIBackend::preferImmediateSend
bool preferImmediateSend()
Definition:
USBMIDI_Adafruit_TinyUSB.hpp:24
USBDeviceMIDIBackend::begin
void begin()
Definition:
USBMIDI_Adafruit_TinyUSB.hpp:10
USBDeviceMIDIBackend::write
void write(MIDIUSBPacket_t packet)
Definition:
USBMIDI_Adafruit_TinyUSB.hpp:22
USBDeviceMIDIBackend::read
MIDIUSBPacket_t read()
Definition:
USBMIDI_Adafruit_TinyUSB.hpp:17
USBDeviceMIDIBackend::backend
Adafruit_USBD_MIDI backend
Definition:
USBMIDI_Adafruit_TinyUSB.hpp:26
Generated by
1.9.4