Add new MIDIHost LowLevel demo application.

Make unfinished device mode applications use the VID/PID reserved for LUFA development devices.
This commit is contained in:
Dean Camera 2009-10-08 07:00:44 +00:00
parent 09575f9607
commit bdedbd558c
32 changed files with 2961 additions and 85 deletions

View file

@ -53,13 +53,13 @@
/* Macros: */
/** Pipe number for the CDC data IN pipe */
#define CDC_DATAPIPE_IN 1
#define CDC_DATAPIPE_IN 1
/** Pipe number for the CDC data OUT pipe */
#define CDC_DATAPIPE_OUT 2
#define CDC_DATAPIPE_OUT 2
/** Pipe number for the CDC notification pipe */
#define CDC_NOTIFICATIONPIPE 3
#define CDC_NOTIFICATIONPIPE 3
/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
#define LEDMASK_USB_NOTREADY LEDS_LED1
@ -72,47 +72,7 @@
/** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
#define LEDMASK_USB_ERROR (LEDS_LED1 | LEDS_LED3)
/* Type Defines: */
/** Class state structure. An instance of this structure should be made for each CDC interface
* within the user application, and passed to each of the CDC class driver functions as the
* CDCInterfaceInfo parameter. The contents of this structure should be set to their correct
* values when used, or ommitted to force the library to use default values.
*/
typedef struct
{
const struct
{
uint8_t ControlInterfaceNumber; /**< Interface number of the CDC control interface within the device */
uint8_t DataINEndpointNumber; /**< Endpoint number of the CDC interface's IN data endpoint */
uint16_t DataINEndpointSize; /**< Size in bytes of the CDC interface's IN data endpoint */
uint8_t DataOUTEndpointNumber; /**< Endpoint number of the CDC interface's OUT data endpoint */
uint16_t DataOUTEndpointSize; /**< Size in bytes of the CDC interface's OUT data endpoint */
uint8_t NotificationEndpointNumber; /**< Endpoint number of the CDC interface's IN notification endpoint, if used */
uint16_t NotificationEndpointSize; /**< Size in bytes of the CDC interface's IN notification endpoint, if used */
} Config;
struct
{
uint8_t ControlLineState; /**< Current control line states, as set by the host */
struct
{
uint32_t BaudRateBPS; /**< Baud rate of the virtual serial port, in bits per second */
uint8_t CharFormat; /**< Character format of the virtual serial port, a value from the
* CDCDevice_CDC_LineCodingFormats_t enum
*/
uint8_t ParityType; /**< Parity setting of the virtual serial port, a value from the
* CDCDevice_LineCodingParity_t enum
*/
uint8_t DataBits; /**< Bits of data per character of the virtual serial port */
} LineEncoding;
} State;
} USB_ClassInfo_CDC_Host_t;
/* Function Prototypes: */
void SetupHardware(void);
void CDC_Host_Task(void);

View file

@ -73,12 +73,12 @@ uint8_t ProcessConfigurationDescriptor(void)
return NoCDCInterfaceFound;
}
/* Get the IN and OUT data endpoints for the CDC interface */
/* Get the IN and OUT data and IN notification endpoints for the CDC interface */
while (FoundEndpoints != ((1 << CDC_NOTIFICATIONPIPE) | (1 << CDC_DATAPIPE_IN) | (1 << CDC_DATAPIPE_OUT)))
{
/* Fetch the next bulk or interrupt endpoint from the current CDC interface */
if (USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
DComp_NextInterfaceCDCDataEndpoint) != DESCRIPTOR_SEARCH_COMP_Found)
DComp_NextCDCDataInterfaceEndpoint) != DESCRIPTOR_SEARCH_COMP_Found)
{
/* Check to see if the control interface's notification pipe has been found, if so search for the data interface */
if (FoundEndpoints & (1 << CDC_NOTIFICATIONPIPE))
@ -115,7 +115,7 @@ uint8_t ProcessConfigurationDescriptor(void)
/* Fetch the next bulk or interrupt endpoint from the current CDC interface */
if (USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
DComp_NextInterfaceCDCDataEndpoint) != DESCRIPTOR_SEARCH_COMP_Found)
DComp_NextCDCDataInterfaceEndpoint) != DESCRIPTOR_SEARCH_COMP_Found)
{
/* Descriptor not found, error out */
return NoEndpointFound;
@ -226,7 +226,7 @@ uint8_t DComp_NextCDCDataInterface(void* CurrentDescriptor)
*
* \return A value from the DSEARCH_Return_ErrorCodes_t enum
*/
uint8_t DComp_NextInterfaceCDCDataEndpoint(void* CurrentDescriptor)
uint8_t DComp_NextCDCDataInterfaceEndpoint(void* CurrentDescriptor)
{
if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Endpoint)
{

View file

@ -54,7 +54,7 @@
/** Interface Class value for the CDC data class */
#define CDC_DATA_CLASS 0x0A
/** Interface Class value for the CDC data subclass (unused) */
/** Interface Class value for the CDC data subclass */
#define CDC_DATA_SUBCLASS 0x00
/** Interface Class value for the CDC data protocol */
@ -80,6 +80,6 @@
uint8_t DComp_NextCDCControlInterface(void* CurrentDescriptor);
uint8_t DComp_NextCDCDataInterface(void* CurrentDescriptor);
uint8_t DComp_NextInterfaceCDCDataEndpoint(void* CurrentDescriptor);
uint8_t DComp_NextCDCDataInterfaceEndpoint(void* CurrentDescriptor);
#endif