typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // CDC Control Interface
USB_Descriptor_Interface_t CDC_CCI_Interface;
USB_Descriptor_CDC_FunctionalHeader_t CDC_Functional_Header;
USB_Descriptor_CDC_FunctionalACM_t CDC_Functional_ACM;
USB_Descriptor_CDC_FunctionalUnion_t CDC_Functional_Union;
USB_Descriptor_Endpoint_t CDC_NotificationEndpoint;
+
+ // CDC Data Interface
USB_Descriptor_Interface_t CDC_DCI_Interface;
USB_Descriptor_Endpoint_t CDC_DataOutEndpoint;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // DFU Interface
USB_Descriptor_Interface_t DFU_Interface;
USB_Descriptor_DFU_Functional_t DFU_Functional;
} USB_Descriptor_Configuration_t;
typedef struct\r
{\r
USB_Descriptor_Configuration_Header_t Config;\r
+ \r
+ // Generic HID Interface\r
USB_Descriptor_Interface_t HID_Interface;\r
USB_HID_Descriptor_HID_t HID_VendorHID;\r
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;\r
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Audio Control Interface
USB_Descriptor_Interface_t Audio_ControlInterface;
USB_Audio_Descriptor_Interface_AC_t Audio_ControlInterface_SPC;
USB_Audio_Descriptor_InputTerminal_t Audio_InputTerminal;
USB_Audio_Descriptor_OutputTerminal_t Audio_OutputTerminal;
+
+ // Audio Streaming Interface
USB_Descriptor_Interface_t Audio_StreamInterface_Alt0;
USB_Descriptor_Interface_t Audio_StreamInterface_Alt1;
USB_Audio_Descriptor_Interface_AS_t Audio_StreamInterface_SPC;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Audio Control Interface
USB_Descriptor_Interface_t Audio_ControlInterface;
USB_Audio_Descriptor_Interface_AC_t Audio_ControlInterface_SPC;
USB_Audio_Descriptor_InputTerminal_t Audio_InputTerminal;
USB_Audio_Descriptor_OutputTerminal_t Audio_OutputTerminal;
+
+ // Audio Streaming Interface
USB_Descriptor_Interface_t Audio_StreamInterface_Alt0;
USB_Descriptor_Interface_t Audio_StreamInterface_Alt1;
USB_Audio_Descriptor_Interface_AS_t Audio_StreamInterface_SPC;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // First CDC Control Interface
USB_Descriptor_Interface_Association_t CDC1_IAD;
USB_Descriptor_Interface_t CDC1_CCI_Interface;
USB_CDC_Descriptor_FunctionalHeader_t CDC1_Functional_Header;
USB_CDC_Descriptor_FunctionalACM_t CDC1_Functional_ACM;
USB_CDC_Descriptor_FunctionalUnion_t CDC1_Functional_Union;
USB_Descriptor_Endpoint_t CDC1_ManagementEndpoint;
+
+ // First CDC Data Interface
USB_Descriptor_Interface_t CDC1_DCI_Interface;
USB_Descriptor_Endpoint_t CDC1_DataOutEndpoint;
USB_Descriptor_Endpoint_t CDC1_DataInEndpoint;
+
+ // Second CDC Control Interface
USB_Descriptor_Interface_Association_t CDC2_IAD;
USB_Descriptor_Interface_t CDC2_CCI_Interface;
USB_CDC_Descriptor_FunctionalHeader_t CDC2_Functional_Header;
USB_CDC_Descriptor_FunctionalACM_t CDC2_Functional_ACM;
USB_CDC_Descriptor_FunctionalUnion_t CDC2_Functional_Union;
USB_Descriptor_Endpoint_t CDC2_ManagementEndpoint;
+
+ // Second CDC Data Interface
USB_Descriptor_Interface_t CDC2_DCI_Interface;
USB_Descriptor_Endpoint_t CDC2_DataOutEndpoint;
USB_Descriptor_Endpoint_t CDC2_DataInEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Generic HID Interface
USB_Descriptor_Interface_t HID_Interface;
USB_HID_Descriptor_HID_t HID_GenericHID;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Joystick HID Interface
USB_Descriptor_Interface_t HID_Interface;
USB_HID_Descriptor_HID_t HID_JoystickHID;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Keyboard HID Interface
USB_Descriptor_Interface_t HID_Interface;
USB_HID_Descriptor_HID_t HID_KeyboardHID;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Keyboard HID Interface
USB_Descriptor_Interface_t HID1_KeyboardInterface;
USB_HID_Descriptor_HID_t HID1_KeyboardHID;
USB_Descriptor_Endpoint_t HID1_ReportINEndpoint;
+
+ // Mouse HID Interface
USB_Descriptor_Interface_t HID2_MouseInterface;
USB_HID_Descriptor_HID_t HID2_MouseHID;
USB_Descriptor_Endpoint_t HID2_ReportINEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Combined Keyboard/Mouse HID Interface
USB_Descriptor_Interface_t HID_Interface;
USB_HID_Descriptor_HID_t HID_HIDData;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // MIDI Audio Control Interface
USB_Descriptor_Interface_t Audio_ControlInterface;
USB_Audio_Descriptor_Interface_AC_t Audio_ControlInterface_SPC;
+
+ // MIDI Audio Streaming Interface
USB_Descriptor_Interface_t Audio_StreamInterface;
USB_MIDI_Descriptor_AudioInterface_AS_t Audio_StreamInterface_SPC;
USB_MIDI_Descriptor_InputJack_t MIDI_In_Jack_Emb;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Mass Storage Interface
USB_Descriptor_Interface_t MS_Interface;
USB_Descriptor_Endpoint_t MS_DataInEndpoint;
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Mass Storage Interface
USB_Descriptor_Interface_t MS_Interface;
USB_Descriptor_Endpoint_t MS_DataInEndpoint;
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;
+
+ // Generic HID Interface
USB_Descriptor_Interface_t HID_KeyboardInterface;
USB_HID_Descriptor_HID_t HID_KeyboardHID;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Mouse HID Interface
USB_Descriptor_Interface_t HID_Interface;
USB_HID_Descriptor_HID_t HID_MouseHID;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // RNDIS CDC Control Interface
USB_Descriptor_Interface_t CDC_CCI_Interface;
USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;
USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM;
USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union;
USB_Descriptor_Endpoint_t CDC_NotificationEndpoint;
+
+ // RNDIS CDC Data Interface
USB_Descriptor_Interface_t CDC_DCI_Interface;
USB_Descriptor_Endpoint_t RNDIS_DataOutEndpoint;
USB_Descriptor_Endpoint_t RNDIS_DataInEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // CDC Control Interface
USB_Descriptor_Interface_t CDC_CCI_Interface;
USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;
USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM;
USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union;
USB_Descriptor_Endpoint_t CDC_NotificationEndpoint;
+
+ // CDC Data Interface
USB_Descriptor_Interface_t CDC_DCI_Interface;
USB_Descriptor_Endpoint_t CDC_DataOutEndpoint;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
typedef struct\r
{\r
USB_Descriptor_Configuration_Header_t Config;\r
+\r
+ // CDC Control Interface\r
USB_Descriptor_Interface_Association_t CDC_IAD;\r
USB_Descriptor_Interface_t CDC_CCI_Interface;\r
USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;\r
USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM;\r
USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union;\r
USB_Descriptor_Endpoint_t CDC_NotificationEndpoint;\r
+\r
+ // CDC Data Interface\r
USB_Descriptor_Interface_t CDC_DCI_Interface;\r
USB_Descriptor_Endpoint_t CDC_DataOutEndpoint;\r
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;\r
+\r
+ // Mass Storage Interface\r
USB_Descriptor_Interface_t MS_Interface;\r
USB_Descriptor_Endpoint_t MS_DataInEndpoint;\r
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;\r
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // CDC Control Interface
USB_Descriptor_Interface_Association_t CDC_IAD;
USB_Descriptor_Interface_t CDC_CCI_Interface;
USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;
USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM;
USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union;
USB_Descriptor_Endpoint_t CDC_NotificationEndpoint;
+
+ // CDC Data Interface
USB_Descriptor_Interface_t CDC_DCI_Interface;
USB_Descriptor_Endpoint_t CDC_DataOutEndpoint;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
+
+ // Mouse HID Interface
USB_Descriptor_Interface_t HID_Interface;
USB_HID_Descriptor_HID_t HID_MouseHID;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // SideShow Interface
USB_Descriptor_Interface_t SSHOW_Interface;
USB_Descriptor_Endpoint_t SSHOW_DataInEndpoint;
USB_Descriptor_Endpoint_t SSHOW_DataOutEndpoint;
.MaxPowerConsumption = USB_CONFIG_POWER_MA(100)
},
- .Interface =
+ .TM_Interface =
{
.Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
.InterfaceStrIndex = NO_DESCRIPTOR
},
- .DataOutEndpoint =
+ .TM_DataOutEndpoint =
{
.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
.PollingIntervalMS = 0x01
},
- .DataInEndpoint =
+ .TM_DataInEndpoint =
{
.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
.PollingIntervalMS = 0x01
},
- .NotificationEndpoint =
+ .TM_NotificationEndpoint =
{
.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
typedef struct\r
{\r
USB_Descriptor_Configuration_Header_t Config;\r
- USB_Descriptor_Interface_t Interface;\r
- USB_Descriptor_Endpoint_t DataOutEndpoint;\r
- USB_Descriptor_Endpoint_t DataInEndpoint;\r
- USB_Descriptor_Endpoint_t NotificationEndpoint;\r
+ \r
+ // Test and Measurement Interface\r
+ USB_Descriptor_Interface_t TM_Interface;\r
+ USB_Descriptor_Endpoint_t TM_DataOutEndpoint;\r
+ USB_Descriptor_Endpoint_t TM_DataInEndpoint;\r
+ USB_Descriptor_Endpoint_t TM_NotificationEndpoint;\r
} USB_Descriptor_Configuration_t;\r
\r
/* Function Prototypes: */\r
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Audio Control Interface
USB_Descriptor_Interface_t Audio_ControlInterface;
USB_Audio_Descriptor_Interface_AC_t Audio_ControlInterface_SPC;
USB_Audio_Descriptor_InputTerminal_t Audio_InputTerminal;
USB_Audio_Descriptor_OutputTerminal_t Audio_OutputTerminal;
+
+ // Audio Streaming Interface
USB_Descriptor_Interface_t Audio_StreamInterface_Alt0;
USB_Descriptor_Interface_t Audio_StreamInterface_Alt1;
USB_Audio_Descriptor_Interface_AS_t Audio_StreamInterface_SPC;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Audio Control Interface
USB_Descriptor_Interface_t Audio_ControlInterface;
USB_Audio_Descriptor_Interface_AC_t Audio_ControlInterface_SPC;
USB_Audio_Descriptor_InputTerminal_t Audio_InputTerminal;
USB_Audio_Descriptor_OutputTerminal_t Audio_OutputTerminal;
+
+ // Audio Streaming Interface
USB_Descriptor_Interface_t Audio_StreamInterface_Alt0;
USB_Descriptor_Interface_t Audio_StreamInterface_Alt1;
USB_Audio_Descriptor_Interface_AS_t Audio_StreamInterface_SPC;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // First CDC Control Interface
USB_Descriptor_Interface_Association_t CDC1_IAD;
USB_Descriptor_Interface_t CDC1_CCI_Interface;
USB_CDC_Descriptor_FunctionalHeader_t CDC1_Functional_Header;
USB_CDC_Descriptor_FunctionalACM_t CDC1_Functional_ACM;
USB_CDC_Descriptor_FunctionalUnion_t CDC1_Functional_Union;
USB_Descriptor_Endpoint_t CDC1_ManagementEndpoint;
+
+ // First CDC Data Interface
USB_Descriptor_Interface_t CDC1_DCI_Interface;
USB_Descriptor_Endpoint_t CDC1_DataOutEndpoint;
USB_Descriptor_Endpoint_t CDC1_DataInEndpoint;
+
+ // Second CDC Control Interface
USB_Descriptor_Interface_Association_t CDC2_IAD;
USB_Descriptor_Interface_t CDC2_CCI_Interface;
USB_CDC_Descriptor_FunctionalHeader_t CDC2_Functional_Header;
USB_CDC_Descriptor_FunctionalACM_t CDC2_Functional_ACM;
USB_CDC_Descriptor_FunctionalUnion_t CDC2_Functional_Union;
USB_Descriptor_Endpoint_t CDC2_ManagementEndpoint;
+
+ // Second CDC Data Interface
USB_Descriptor_Interface_t CDC2_DCI_Interface;
USB_Descriptor_Endpoint_t CDC2_DataOutEndpoint;
USB_Descriptor_Endpoint_t CDC2_DataInEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Generic HID Interface
USB_Descriptor_Interface_t HID_Interface;
USB_HID_Descriptor_HID_t HID_GenericHID;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Joystick HID Interface
USB_Descriptor_Interface_t HID_Interface;
USB_HID_Descriptor_HID_t HID_JoystickHID;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Keyboard HID Interface
USB_Descriptor_Interface_t HID_Interface;
USB_HID_Descriptor_HID_t HID_KeyboardHID;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Keyboard HID Interface
USB_Descriptor_Interface_t HID1_KeyboardInterface;
USB_HID_Descriptor_HID_t HID1_KeyboardHID;
- USB_Descriptor_Endpoint_t HID1_ReportINEndpoint;
- USB_Descriptor_Endpoint_t HID1_ReportOUTEndpoint;
+ USB_Descriptor_Endpoint_t HID1_ReportINEndpoint;
+
+ // Mouse HID Interface
USB_Descriptor_Interface_t HID2_MouseInterface;
USB_HID_Descriptor_HID_t HID2_MouseHID;
- USB_Descriptor_Endpoint_t HID2_ReportINEndpoint;
+ USB_Descriptor_Endpoint_t HID2_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
/* Macros: */
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // MIDI Audio Control Interface
USB_Descriptor_Interface_t Audio_ControlInterface;
USB_Audio_Descriptor_Interface_AC_t Audio_ControlInterface_SPC;
+
+ // MIDI Audio Streaming Interface
USB_Descriptor_Interface_t Audio_StreamInterface;
USB_MIDI_Descriptor_AudioInterface_AS_t Audio_StreamInterface_SPC;
USB_MIDI_Descriptor_InputJack_t MIDI_In_Jack_Emb;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Mass Storage Interface
USB_Descriptor_Interface_t MS_Interface;
USB_Descriptor_Endpoint_t MS_DataInEndpoint;
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Mouse HID Interface
USB_Descriptor_Interface_t HID_Interface;
USB_HID_Descriptor_HID_t HID_MouseHID;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
*/
typedef struct
{
- USB_Descriptor_Configuration_Header_t Config;
- USB_Descriptor_Interface_t CDC_CCI_Interface;
- USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;
- USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM;
- USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union;
- USB_Descriptor_Endpoint_t CDC_NotificationEndpoint;
- USB_Descriptor_Interface_t CDC_DCI_Interface;
- USB_Descriptor_Endpoint_t RNDIS_DataOutEndpoint;
- USB_Descriptor_Endpoint_t RNDIS_DataInEndpoint;
+ USB_Descriptor_Configuration_Header_t Config;
+
+ // RNDIS CDC Control Interface
+ USB_Descriptor_Interface_t CDC_CCI_Interface;
+ USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;
+ USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM;
+ USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union;
+ USB_Descriptor_Endpoint_t CDC_NotificationEndpoint;
+
+ // RNDIS CDC Data Interface
+ USB_Descriptor_Interface_t CDC_DCI_Interface;
+ USB_Descriptor_Endpoint_t RNDIS_DataOutEndpoint;
+ USB_Descriptor_Endpoint_t RNDIS_DataInEndpoint;
} USB_Descriptor_Configuration_t;
/* Function Prototypes: */
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // CDC Control Interface
USB_Descriptor_Interface_t CDC_CCI_Interface;
USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;
USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM;
USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union;
USB_Descriptor_Endpoint_t CDC_NotificationEndpoint;
+
+ // CDC Data Interface
USB_Descriptor_Interface_t CDC_DCI_Interface;
USB_Descriptor_Endpoint_t CDC_DataOutEndpoint;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Mouse HID Interface
USB_Descriptor_Interface_t HID_Interface;
USB_HID_Descriptor_HID_t HID_MouseHID;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
* - Programmable XBOX controller: http://richard-burke.dyndns.org/wordpress/pan-galactic-gargantuan-gargle-brain-aka-xbox-360-usb-controller/
* - Reprap with LUFA, a LUFA powered 3D printer: http://code.google.com/p/at90usb1287-code-for-arduino-and-eclipse/
* - SD Card reader: http://elasticsheep.com/2010/04/teensy2-usb-mass-storage-with-an-sd-card/
+ * - SDR1, a Software Defined Radio firmware: https://code.google.com/p/sdr-mk1/
* - SEGA Megadrive/Genesis Development Cartridge: http://www.makestuff.eu/wordpress/?page_id=398
* - Serial Line bus analyser: http://www.pjrc.com/teensy/projects/SerialAnalyzer.html
* - SmartportVHD Apple II Mass Storage adapter: http://pcedric3.free.fr/SmartportVHD/
* - Penguino, an Arduino Board With On-Board LUFA Powered Debugger/Programmer: http://wiki.icy.com.au/PenguinoAVR
* - PIR-1, an IR control interface for consumer electronics: http://www.promixis.com/pir-1.php
* - PIR-4, a USB Connected 4 port IR transmitter: http://promixis.com/pir-4.php
+ * - KeyGlove, an alternative input system: http://www.keyglove.net/
* - Many of Busware's Products: http://www.busware.de/
* - MIDIFighter, a USB-MIDI controller: http://www.midifighter.com/
* - Retrode, a USB Games Console Cartridge Reader: http://www.retrode.org
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Atmel AVRISP-MKII Interface
USB_Descriptor_Interface_t AVRISP_Interface;
USB_Descriptor_Endpoint_t AVRISP_DataInEndpoint;
USB_Descriptor_Endpoint_t AVRISP_DataOutEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // CDC Command Interface
USB_Descriptor_Interface_t CDC_CCI_Interface;
USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;
USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM;
USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union;
USB_Descriptor_Endpoint_t CDC_NotificationEndpoint;
+
+ // CDC Data Interface
USB_Descriptor_Interface_t CDC_DCI_Interface;
USB_Descriptor_Endpoint_t CDC_DataOutEndpoint;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Mass Storage Interface
USB_Descriptor_Interface_t MS_Interface;
USB_Descriptor_Endpoint_t MS_DataInEndpoint;
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // CDC Command Interface
USB_Descriptor_Interface_t CDC_CCI_Interface;
USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;
USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM;
USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union;
USB_Descriptor_Endpoint_t CDC_NotificationEndpoint;
+
+ // CDC Data Interface
USB_Descriptor_Interface_t CDC_DCI_Interface;
USB_Descriptor_Endpoint_t CDC_DataOutEndpoint;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
typedef struct\r
{\r
USB_Descriptor_Configuration_Header_t Config;\r
+\r
+ // MIDI Audio Control Interface\r
USB_Descriptor_Interface_t Audio_ControlInterface;\r
USB_Audio_Descriptor_Interface_AC_t Audio_ControlInterface_SPC;\r
+\r
+ // MIDI Audio Streaming Interface\r
USB_Descriptor_Interface_t Audio_StreamInterface;\r
USB_MIDI_Descriptor_AudioInterface_AS_t Audio_StreamInterface_SPC;\r
USB_MIDI_Descriptor_InputJack_t MIDI_In_Jack_Emb;\r
typedef struct
{
USB_Descriptor_Configuration_Header_t Config; /**< Configuration descriptor header structure */
+
+ // Keyboard HID Interface
USB_Descriptor_Interface_t HID_Interface; /**< Keyboard interface descriptor */
USB_HID_Descriptor_HID_t HID_KeyboardHID; /**< Keyboard HID descriptor */
USB_Descriptor_Endpoint_t HID_ReportINEndpoint; /**< Keyboard key report endpoint descriptor */
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Media Controller HID Interface
USB_Descriptor_Interface_t HID_Interface;
USB_HID_Descriptor_HID_t HID_MediaControlHID;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Relay Board Interface
USB_Descriptor_Interface_t RelayBoardInterface;
} USB_Descriptor_Configuration_t;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Mass Storage Interface
USB_Descriptor_Interface_t MS_Interface;
USB_Descriptor_Endpoint_t MS_DataInEndpoint;
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;
+
+ // Settings Management Generic HID Interface
USB_Descriptor_Interface_t HID_Interface;
USB_HID_Descriptor_HID_t HID_GenericHID;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // CDC Command Interface
USB_Descriptor_Interface_t CDC_CCI_Interface;
USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;
USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM;
USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union;
USB_Descriptor_Endpoint_t CDC_NotificationEndpoint;
+
+ // CDC Data Interface
USB_Descriptor_Interface_t CDC_DCI_Interface;
USB_Descriptor_Endpoint_t CDC_DataOutEndpoint;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // RNDIS CDC Command Interface
USB_Descriptor_Interface_Association_t CDC_IAD;
USB_Descriptor_Interface_t CDC_CCI_Interface;
USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;
USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM;
USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union;
USB_Descriptor_Endpoint_t CDC_NotificationEndpoint;
+
+ // RNDIS CDC Data Interface
USB_Descriptor_Interface_t CDC_DCI_Interface;
USB_Descriptor_Endpoint_t RNDIS_DataOutEndpoint;
USB_Descriptor_Endpoint_t RNDIS_DataInEndpoint;
+
+ // Mass Storage Interface
USB_Descriptor_Interface_t MS_Interface;
USB_Descriptor_Endpoint_t MS_DataInEndpoint;
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // Atmel AVRISP-MKII Interface
USB_Descriptor_Interface_t AVRISP_Interface;
USB_Descriptor_Endpoint_t AVRISP_DataInEndpoint;
USB_Descriptor_Endpoint_t AVRISP_DataOutEndpoint;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // CDC Control Interface
USB_Descriptor_Interface_t CDC_CCI_Interface;
USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;
USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM;
USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union;
USB_Descriptor_Endpoint_t CDC_NotificationEndpoint;
+
+ // CDC Data Interface
USB_Descriptor_Interface_t CDC_DCI_Interface;
USB_Descriptor_Endpoint_t CDC_DataOutEndpoint;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;