20#include "definitions_cxx.hpp"
21#include "io/midi/cable_types/din.h"
22#include "io/midi/cable_types/usb_common.h"
23#include "io/midi/cable_types/usb_device_cable.h"
24#include "util/container/vector/named_thing_vector.h"
29#include "definitions.h"
36#define MIDI_SEND_BUFFER_LEN_INNER 32
39#define MIDI_SEND_BUFFER_LEN_INNER_HOST 2
42#define MIDI_SEND_BUFFER_LEN_RING 1024
43#define MIDI_SEND_RING_MASK (MIDI_SEND_BUFFER_LEN_RING - 1)
63 MIDICableUSB* cable[4];
64 ConnectedUSBMIDIDevice();
65 void bufferMessage(uint32_t fullMessage);
69 bool consumeSendData();
70 bool hasBufferedSendData();
71 int sendBufferSpace();
77 uint8_t currentlyWaitingToReceive;
79 uint8_t canHaveMIDISent;
80 uint16_t numBytesReceived;
81 uint8_t receiveData[64];
84 uint8_t dataSendingNow[MIDI_SEND_BUFFER_LEN_INNER * 4];
87 uint8_t numBytesSendingNow;
93 uint32_t sendDataRingBuf[MIDI_SEND_BUFFER_LEN_RING];
94 uint32_t ringBufWriteIdx;
95 uint32_t ringBufReadIdx;
97 uint8_t maxPortConnected;
101namespace MIDIDeviceManager {
105void readDeviceReferenceFromFlash(GlobalMIDICommand whichCommand, uint8_t
const* memory);
106void writeDeviceReferenceToFlash(GlobalMIDICommand whichCommand, uint8_t* memory);
107void readMidiFollowDeviceReferenceFromFlash(MIDIFollowChannelType whichType, uint8_t
const* memory);
108void writeMidiFollowDeviceReferenceToFlash(MIDIFollowChannelType whichType, uint8_t* memory);
109void recountSmallestMPEZones();
110void writeDevicesToFile();
112void readDevicesFromFile();
119extern bool differentiatingInputsByDevice;
123extern uint8_t lowestLastMemberChannelOfLowerZoneOnConnectedOutput;
124extern uint8_t highestLastMemberChannelOfUpperZoneOnConnectedOutput;
125extern bool anyChangesToSave;
130extern struct ConnectedUSBMIDIDevice connectedUSBMIDIDevices[][MAX_NUM_USB_MIDI_DEVICES];
Definition storage_manager.h:185
Definition usb_device_cable.h:22
Definition usb_common.h:22
A MIDI cable connection. Stores all state specific to a given cable and its contained ports and chann...
Definition midi_device.h:94
Definition named_thing_vector.h:35
Definition storage_manager.h:119
Definition midi_device_manager.h:74