MIDI Class Host Mode Driver
[MIDI Class Driver - LUFA/Drivers/Class/MIDI.h]

Data Structures

struct  USB_ClassInfo_MIDI_Host_t

Enumerations

enum  MIDIHost_EnumerationFailure_ErrorCodes_t {
  MIDI_ENUMERROR_NoError = 0,
  MIDI_ENUMERROR_InvalidConfigDescriptor = 1,
  MIDI_ENUMERROR_NoStreamingInterfaceFound = 2,
  MIDI_ENUMERROR_EndpointsNotFound = 3
}

Functions

void MIDI_Host_USBTask (USB_ClassInfo_MIDI_Host_t *const MIDIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
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)
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)
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)

Detailed Description

Module Source Dependencies

The following files must be built with any user project that uses this module:

Description

Host Mode USB Class driver framework interface, for the MIDI USB Class driver.


Enumeration Type Documentation

Enum for the possible error codes returned by the MIDI_Host_ConfigurePipes() function.

Enumerator:
MIDI_ENUMERROR_NoError 

Configuration Descriptor was processed successfully

MIDI_ENUMERROR_InvalidConfigDescriptor 

The device returned an invalid Configuration Descriptor

MIDI_ENUMERROR_NoStreamingInterfaceFound 

A compatible MIDI interface was not found in the device's Configuration Descriptor

MIDI_ENUMERROR_EndpointsNotFound 

Compatible MIDI data endpoints were not found in the device's MIDI interface


Function Documentation

uint8_t MIDI_Host_ConfigurePipes ( USB_ClassInfo_MIDI_Host_t *const   MIDIInterfaceInfo,
uint16_t  ConfigDescriptorSize,
void *  DeviceConfigDescriptor 
)

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.

Parameters:
[in,out] MIDIInterfaceInfo Pointer to a structure containing an MIDI Class host configuration and state
[in] ConfigDescriptorSize Length of the attached device's Configuration Descriptor
[in] DeviceConfigDescriptor Pointer to a buffer containing the attached device's Configuration Descriptor
Returns:
A value from the MIDIHost_EnumerationFailure_ErrorCodes_t enum
bool MIDI_Host_ReceiveEventPacket ( USB_ClassInfo_MIDI_Host_t *const   MIDIInterfaceInfo,
MIDI_EventPacket_t *const   Event 
)

Receives a MIDI event packet from the device.

Parameters:
[in,out] MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state
[out] Event Pointer to a USB_MIDI_EventPacket_t structure where the received MIDI event is to be placed
Returns:
Boolean true if a MIDI event packet was received, false otherwise
uint8_t MIDI_Host_SendEventPacket ( USB_ClassInfo_MIDI_Host_t *const   MIDIInterfaceInfo,
MIDI_EventPacket_t *const   Event 
)

Sends a MIDI event packet to the device. If no device is connected, the event packet is discarded.

Parameters:
[in,out] MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state
[in] Event Pointer to a populated USB_MIDI_EventPacket_t structure containing the MIDI event to send
Returns:
A value from the Pipe_Stream_RW_ErrorCodes_t enum
void MIDI_Host_USBTask ( USB_ClassInfo_MIDI_Host_t *const   MIDIInterfaceInfo  ) 

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().

Parameters:
[in,out] MIDIInterfaceInfo Pointer to a structure containing an MIDI Class host configuration and state

Generated on Wed Dec 23 18:41:44 2009 for LUFA (Formerly MyUSB) Library by  doxygen 1.6.1