|
|
|
|
|
|
|
|
usb_midi_send_sysex(data, length); |
|
|
usb_midi_send_sysex(data, length); |
|
|
} |
|
|
} |
|
|
void sendRealTime(uint32_t type) __attribute__((always_inline)) { |
|
|
void sendRealTime(uint32_t type) __attribute__((always_inline)) { |
|
|
uint32_t data = ( (type & 0xFF) | ((type << 8) & 0xFF00) ); |
|
|
|
|
|
switch (type) { |
|
|
switch (type) { |
|
|
case 0xF8: // Clock |
|
|
case 0xF8: // Clock |
|
|
case 0xFA: // Start |
|
|
case 0xFA: // Start |
|
|
|
|
|
|
|
|
case 0xFB: // Continue |
|
|
case 0xFB: // Continue |
|
|
case 0xFE: // ActiveSensing |
|
|
case 0xFE: // ActiveSensing |
|
|
case 0xFF: // SystemReset |
|
|
case 0xFF: // SystemReset |
|
|
usb_midi_write_packed(data); |
|
|
|
|
|
|
|
|
usb_midi_write_packed((type << 8) | 0x0F); |
|
|
break; |
|
|
break; |
|
|
default: // Invalid Real Time marker |
|
|
default: // Invalid Real Time marker |
|
|
break; |
|
|
break; |