Control Surface  1.1.1
MIDI Control Surface library for Arduino
USBMIDI_Teensy3.ipp
Go to the documentation of this file.
1 #include "USBMIDI.hpp"
2 
4 
5 #ifdef TEENSY_MIDIUSB_ENABLED
6 
7 #include <string.h>
8 #include <usb_midi.h>
9 
11 
12 namespace USBMIDI {
13 
15  MIDIUSBPacket_t packet;
16  uint32_t msg = usb_midi_read_message();
17  static_assert(sizeof(msg) == sizeof(packet.data), "incorrect packet size");
18  memcpy(packet.data, &msg, sizeof(packet.data));
19  return packet;
20 }
21 
22 void write(uint8_t cn, uint8_t cin, uint8_t d0, uint8_t d1, uint8_t d2) {
23  usb_midi_write_packed((cn << 4) | cin | // CN|CIN
24  (d0 << 8) | // status
25  (d1 << 16) | // data 1
26  (d2 << 24)); // data 2
27 }
28 
29 void flush() {}
30 
31 } // namespace USBMIDI
32 
34 
35 #endif
USBMIDI
Definition: USBMIDI.hpp:6
USBMIDI.hpp
BEGIN_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
Definition: Settings/NamespaceSettings.hpp:9
END_CS_NAMESPACE
#define END_CS_NAMESPACE
Definition: Settings/NamespaceSettings.hpp:10
TeensyUSBTypes.hpp
USBMIDI::flush
void flush()
Definition: USBMIDI_MIDIUSB.ipp:24
USBMIDI::MIDIUSBPacket_t
AH::Array< uint8_t, 4 > MIDIUSBPacket_t
Definition: USBMIDI.hpp:8
USBMIDI::read
MIDIUSBPacket_t read()
Definition: USBMIDI_MIDIUSB.ipp:8
USBMIDI::write
void write(uint8_t cn, uint8_t cin, uint8_t d0, uint8_t d1, uint8_t d2)
Definition: USBMIDI_MIDIUSB.ipp:14