LPCOpen Platform
LPCOpen Platform for NXP LPC Microcontrollers
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
MIDIClassHost.h File Reference

Go to the source code of this file.

Data Structures

struct  USB_ClassInfo_MIDI_Host_t
 MIDI Class Host Mode Configuration and State Structure. More...
 

Enumerations

enum  MIDI_Host_EnumerationFailure_ErrorCodes_t { MIDI_ENUMERROR_NoError = 0, MIDI_ENUMERROR_InvalidConfigDescriptor = 1, MIDI_ENUMERROR_NoCompatibleInterfaceFound = 2, MIDI_ENUMERROR_PipeConfigurationFailed = 3 }
 

Functions

uint8_t MIDI_Host_ConfigurePipes (USB_ClassInfo_MIDI_Host_t *const MIDIInterfaceInfo, uint16_t ConfigDescriptorSize, void *DeviceConfigDescriptor) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3)
 Host interface configuration routine, to configure a given MIDI host interface instance using the Configuration Descriptor read from an attached USB device. This function automatically updates the given MIDI Host instance's state values and configures the pipes required to communicate with the interface if it is found within the device. This should be called once after the stack has enumerated the attached device, while the host state machine is in the Addressed state.
 
void MIDI_Host_USBTask (USB_ClassInfo_MIDI_Host_t *const MIDIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
 General management task for a given MIDI host class interface, required for the correct operation of the interface. This should be called frequently in the main program loop, before the master USB management task USB_USBTask().
 
uint8_t MIDI_Host_SendEventPacket (USB_ClassInfo_MIDI_Host_t *const MIDIInterfaceInfo, MIDI_EventPacket_t *const Event) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
 Sends a MIDI event packet to the device. If no device is connected, the event packet is discarded.
 
uint8_t MIDI_Host_Flush (USB_ClassInfo_MIDI_Host_t *const MIDIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
 Flushes the MIDI send buffer, sending any queued MIDI events to the device. This should be called to override the MIDI_Host_SendEventPacket() function's packing behaviour, to flush queued events. Events are queued into the pipe bank until either the pipe bank is full, or MIDI_Host_Flush() is called. This allows for multiple MIDI events to be packed into a single pipe packet, increasing data throughput.
 
bool MIDI_Host_ReceiveEventPacket (USB_ClassInfo_MIDI_Host_t *const MIDIInterfaceInfo, MIDI_EventPacket_t *const Event) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
 Receives a MIDI event packet from the device.