37 void sendSysExStartCont1(
const uint8_t *data,
Cable cable, Send &send);
45 void sendSysExStartCont(
const uint8_t *&data, uint16_t &length,
Cable cable,
50 void sendSysExEnd(
const uint8_t *data, uint16_t length,
Cable cable,
59 uint8_t storedSysExData[16][3];
61 uint8_t storedSysExLength[16] = {};
82 send(cn, CIN::SYSTEM_COMMON_2B, msg.
header, msg.
data1, 0);
85 send(cn, CIN::SYSTEM_COMMON_1B, msg.
header, 0, 0);
99void USBMIDI_Sender::sendFullSysEx(
SysExMessage msg, Send &send) {
100 size_t length = msg.
length;
101 const uint8_t *data = msg.
data;
104 send(cn, CIN::SYSEX_START_CONT, data[0], data[1], data[2]);
109 case 3: send(cn, CIN::SYSEX_END_3B, data[0], data[1], data[2]);
break;
110 case 2: send(cn, CIN::SYSEX_END_2B, data[0], data[1], 0);
break;
111 case 1: send(cn, CIN::SYSEX_END_1B, data[0], 0, 0);
break;
120 send(cable, CIN::SYSEX_START_CONT, data[0], data[1], data[2]);
125 Cable cable, Send &send) {
135 Cable cn, Send &send) {
137 case 3: send(cn, CIN::SYSEX_END_3B, data[0], data[1], data[2]);
break;
138 case 2: send(cn, CIN::SYSEX_END_2B, data[0], data[1], 0);
break;
139 case 1: send(cn, CIN::SYSEX_END_1B, data[0], 0, 0);
break;
151 uint8_t c = cable.
getRaw();
152 uint16_t length = msg.
length;
153 const uint8_t *data = msg.
data;
201 else if (length == 3) {
MIDICodeIndexNumber
MIDI USB Code Index Numbers.
#define BEGIN_CS_NAMESPACE
#define AH_DIAGNOSTIC_POP()
#define AH_DIAGNOSTIC_WERROR()
A type-safe class for MIDI USB Cable numbers.
constexpr uint8_t getRaw() const
Get the cable as an integer.
A class for sending MIDI USB messages.
void sendChannelMessage(ChannelMessage, Send &&send)
Send a MIDI Channel message using the given sender.
void sendSysEx(SysExMessage, Send &&send)
Send a MIDI System Exclusive message using the given sender.
void sendSysExEnd(const uint8_t *data, uint16_t length, Cable cable, Send &send)
Send a SysExEnd USB packet.
void sendSysExStartCont1(const uint8_t *data, Cable cable, Send &send)
Send a single SysEx starts or continues USB packet.
void sendSysCommonMessage(SysCommonMessage, Send &&send)
Send a MIDI System Common message using the given sender.
void sendSysExStartCont(const uint8_t *&data, uint16_t &length, Cable cable, Send &send)
Send as many SysEx starts or continues USB packets, such that the remaining length is 3,...
uint8_t storedSysExLength[16]
Number of remaining SysEx bytes stored.
void sendRealTimeMessage(RealTimeMessage, Send &&send)
Send a MIDI Real-Time message using the given sender.
uint8_t storedSysExData[16][3]
Stores remainder of outgoing SysEx chunks.
uint8_t data2
First MIDI data byte.
uint8_t header
MIDI status byte (message type and channel).
uint8_t data1
First MIDI data byte.
Cable cable
USB MIDI cable number;.
uint8_t getNumberOfDataBytes() const
Get the number of data bytes of this type of System Common message.
bool isFirstChunk() const