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:
parent
09575f9607
commit
bdedbd558c
32 changed files with 2961 additions and 85 deletions
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue