diff options
38 files changed, 589 insertions, 226 deletions
| diff --git a/Demos/Device/ClassDriver/AudioInput/Descriptors.c b/Demos/Device/ClassDriver/AudioInput/Descriptors.c index f1cb72df2e..ba8c00182c 100644 --- a/Demos/Device/ClassDriver/AudioInput/Descriptors.c +++ b/Demos/Device/ClassDriver/AudioInput/Descriptors.c @@ -104,13 +104,13 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_ControlInterface_SPC =   		{ -			.Header                   = {.Size = sizeof(USB_Audio_Interface_AC_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Interface_AC_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_Header,  			.ACSpecification          = VERSION_BCD(01.00), -			.TotalLength              = (sizeof(USB_Audio_Interface_AC_t) + -			                             sizeof(USB_Audio_InputTerminal_t) + -			                             sizeof(USB_Audio_OutputTerminal_t)), +			.TotalLength              = (sizeof(USB_Audio_Descriptor_Interface_AC_t) + +			                             sizeof(USB_Audio_Descriptor_InputTerminal_t) + +			                             sizeof(USB_Audio_Descriptor_OutputTerminal_t)),  			.InCollection             = 1,  			.InterfaceNumbers         = {1}, @@ -118,7 +118,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_InputTerminal =   		{ -			.Header                   = {.Size = sizeof(USB_Audio_InputTerminal_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_InputTerminal_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_InputTerminal,  			.TerminalID               = 0x01, @@ -134,7 +134,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_OutputTerminal =   		{ -			.Header                   = {.Size = sizeof(USB_Audio_OutputTerminal_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_OutputTerminal_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_OutputTerminal,  			.TerminalID               = 0x02, @@ -180,7 +180,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_StreamInterface_SPC =   		{ -			.Header                   = {.Size = sizeof(USB_Audio_Interface_AS_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Interface_AS_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_General,  			.TerminalLink             = 0x02, @@ -191,7 +191,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_AudioFormat =   		{ -			.Header                   = {.Size = sizeof(USB_Audio_Format_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Format_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_Format,  			.FormatType               = 0x01, @@ -208,7 +208,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  		{  			.Endpoint =   				{ -					.Header              = {.Size = sizeof(USB_Audio_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint}, +					.Header              = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},  					.EndpointAddress     = (ENDPOINT_DESCRIPTOR_DIR_IN | AUDIO_STREAM_EPNUM),  					.Attributes          = (EP_TYPE_ISOCHRONOUS | ENDPOINT_ATTR_SYNC | ENDPOINT_USAGE_DATA), @@ -222,7 +222,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_StreamEndpoint_SPC =   		{ -			.Header                   = {.Size = sizeof(USB_Audio_StreamEndpoint_Spc_t), .Type = DTYPE_AudioEndpoint}, +			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Spc_t), .Type = DTYPE_AudioEndpoint},  			.Subtype                  = DSUBTYPE_General,  			.Attributes               = 0x00, diff --git a/Demos/Device/ClassDriver/AudioInput/Descriptors.h b/Demos/Device/ClassDriver/AudioInput/Descriptors.h index 211bd05762..caf6075cc9 100644 --- a/Demos/Device/ClassDriver/AudioInput/Descriptors.h +++ b/Demos/Device/ClassDriver/AudioInput/Descriptors.h @@ -62,17 +62,17 @@  		 */  		typedef struct  		{ -			USB_Descriptor_Configuration_Header_t Config; -			USB_Descriptor_Interface_t            Audio_ControlInterface; -			USB_Audio_Interface_AC_t              Audio_ControlInterface_SPC; -			USB_Audio_InputTerminal_t             Audio_InputTerminal; -			USB_Audio_OutputTerminal_t            Audio_OutputTerminal; -			USB_Descriptor_Interface_t            Audio_StreamInterface_Alt0; -			USB_Descriptor_Interface_t            Audio_StreamInterface_Alt1; -			USB_Audio_Interface_AS_t              Audio_StreamInterface_SPC; -			USB_Audio_Format_t                    Audio_AudioFormat; -			USB_Audio_StreamEndpoint_Std_t        Audio_StreamEndpoint; -			USB_Audio_StreamEndpoint_Spc_t        Audio_StreamEndpoint_SPC; +			USB_Descriptor_Configuration_Header_t     Config; +			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; +			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt0; +			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt1; +			USB_Audio_Descriptor_Interface_AS_t       Audio_StreamInterface_SPC; +			USB_Audio_Descriptor_Format_t             Audio_AudioFormat; +			USB_Audio_Descriptor_StreamEndpoint_Std_t Audio_StreamEndpoint; +			USB_Audio_Descriptor_StreamEndpoint_Spc_t Audio_StreamEndpoint_SPC;  		} USB_Descriptor_Configuration_t;  	/* Function Prototypes: */ diff --git a/Demos/Device/ClassDriver/AudioOutput/Descriptors.c b/Demos/Device/ClassDriver/AudioOutput/Descriptors.c index 058ea75766..9f385017ad 100644 --- a/Demos/Device/ClassDriver/AudioOutput/Descriptors.c +++ b/Demos/Device/ClassDriver/AudioOutput/Descriptors.c @@ -104,13 +104,13 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_ControlInterface_SPC =   		{ -			.Header                   = {.Size = sizeof(USB_Audio_Interface_AC_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Interface_AC_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_Header,  			.ACSpecification          = VERSION_BCD(01.00), -			.TotalLength              = (sizeof(USB_Audio_Interface_AC_t) + -			                             sizeof(USB_Audio_InputTerminal_t) + -			                             sizeof(USB_Audio_OutputTerminal_t)), +			.TotalLength              = (sizeof(USB_Audio_Descriptor_Interface_AC_t) + +			                             sizeof(USB_Audio_Descriptor_InputTerminal_t) + +			                             sizeof(USB_Audio_Descriptor_OutputTerminal_t)),  			.InCollection             = 1,  			.InterfaceNumbers         = {1}, @@ -118,7 +118,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_InputTerminal =   		{ -			.Header                   = {.Size = sizeof(USB_Audio_InputTerminal_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_InputTerminal_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_InputTerminal,  			.TerminalID               = 0x01, @@ -134,7 +134,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_OutputTerminal =   		{ -			.Header                   = {.Size = sizeof(USB_Audio_OutputTerminal_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_OutputTerminal_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_OutputTerminal,  			.TerminalID               = 0x02, @@ -180,7 +180,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_StreamInterface_SPC =   		{ -			.Header                   = {.Size = sizeof(USB_Audio_Interface_AS_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Interface_AS_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_General,  			.TerminalLink             = 0x01, @@ -191,7 +191,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_AudioFormat =   		{ -			.Header                   = {.Size = sizeof(USB_Audio_Format_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Format_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_Format,  			.FormatType               = 0x01, @@ -208,7 +208,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  		{  			.Endpoint =   				{ -					.Header              = {.Size = sizeof(USB_Audio_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint}, +					.Header              = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},  					.EndpointAddress     = (ENDPOINT_DESCRIPTOR_DIR_OUT | AUDIO_STREAM_EPNUM),  					.Attributes          = (EP_TYPE_ISOCHRONOUS | ENDPOINT_ATTR_SYNC | ENDPOINT_USAGE_DATA), @@ -222,7 +222,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_StreamEndpoint_SPC =   		{ -			.Header                   = {.Size = sizeof(USB_Audio_StreamEndpoint_Spc_t), .Type = DTYPE_AudioEndpoint}, +			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Spc_t), .Type = DTYPE_AudioEndpoint},  			.Subtype                  = DSUBTYPE_General,  			.Attributes               = EP_ACCEPTS_SMALL_PACKETS, diff --git a/Demos/Device/ClassDriver/AudioOutput/Descriptors.h b/Demos/Device/ClassDriver/AudioOutput/Descriptors.h index 6f487eda2f..588f584e97 100644 --- a/Demos/Device/ClassDriver/AudioOutput/Descriptors.h +++ b/Demos/Device/ClassDriver/AudioOutput/Descriptors.h @@ -62,17 +62,17 @@  		 */  		typedef struct  		{ -			USB_Descriptor_Configuration_Header_t Config; -			USB_Descriptor_Interface_t            Audio_ControlInterface; -			USB_Audio_Interface_AC_t              Audio_ControlInterface_SPC; -			USB_Audio_InputTerminal_t             Audio_InputTerminal; -			USB_Audio_OutputTerminal_t            Audio_OutputTerminal; -			USB_Descriptor_Interface_t            Audio_StreamInterface_Alt0; -			USB_Descriptor_Interface_t            Audio_StreamInterface_Alt1; -			USB_Audio_Interface_AS_t              Audio_StreamInterface_SPC; -			USB_Audio_Format_t                    Audio_AudioFormat; -			USB_Audio_StreamEndpoint_Std_t        Audio_StreamEndpoint; -			USB_Audio_StreamEndpoint_Spc_t        Audio_StreamEndpoint_SPC; +			USB_Descriptor_Configuration_Header_t     Config; +			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; +			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt0; +			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt1; +			USB_Audio_Descriptor_Interface_AS_t       Audio_StreamInterface_SPC; +			USB_Audio_Descriptor_Format_t             Audio_AudioFormat; +			USB_Audio_Descriptor_StreamEndpoint_Std_t Audio_StreamEndpoint; +			USB_Audio_Descriptor_StreamEndpoint_Spc_t Audio_StreamEndpoint_SPC;  		} USB_Descriptor_Configuration_t;  	/* Function Prototypes: */ diff --git a/Demos/Device/ClassDriver/GenericHID/Descriptors.c b/Demos/Device/ClassDriver/GenericHID/Descriptors.c index 0297c269de..26d672c458 100644 --- a/Demos/Device/ClassDriver/GenericHID/Descriptors.c +++ b/Demos/Device/ClassDriver/GenericHID/Descriptors.c @@ -130,7 +130,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.HID_GenericHID =   		{ -			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID}, +			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},  			.HIDSpec                = VERSION_BCD(01.11),  			.CountryCode            = 0x00, @@ -229,7 +229,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,  			break;  		case DTYPE_HID:   			Address = &ConfigurationDescriptor.HID_GenericHID; -			Size    = sizeof(USB_HID_Descriptor_t); +			Size    = sizeof(USB_HID_Descriptor_HID_t);  			break;  		case DTYPE_Report:   			Address = &GenericReport; diff --git a/Demos/Device/ClassDriver/GenericHID/Descriptors.h b/Demos/Device/ClassDriver/GenericHID/Descriptors.h index 95f57b94d5..23396f3f5a 100644 --- a/Demos/Device/ClassDriver/GenericHID/Descriptors.h +++ b/Demos/Device/ClassDriver/GenericHID/Descriptors.h @@ -51,7 +51,7 @@  		{  			USB_Descriptor_Configuration_Header_t Config;  			USB_Descriptor_Interface_t            HID_Interface; -			USB_HID_Descriptor_t                  HID_GenericHID; +			USB_HID_Descriptor_HID_t              HID_GenericHID;  	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;  		} USB_Descriptor_Configuration_t; diff --git a/Demos/Device/ClassDriver/Joystick/Descriptors.c b/Demos/Device/ClassDriver/Joystick/Descriptors.c index b2f0f7efbd..217016fd3c 100644 --- a/Demos/Device/ClassDriver/Joystick/Descriptors.c +++ b/Demos/Device/ClassDriver/Joystick/Descriptors.c @@ -140,7 +140,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.HID_JoystickHID =   		{ -			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID}, +			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},  			.HIDSpec                = VERSION_BCD(01.11),  			.CountryCode            = 0x00, @@ -239,7 +239,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,  			break;  		case DTYPE_HID:   			Address = &ConfigurationDescriptor.HID_JoystickHID; -			Size    = sizeof(USB_HID_Descriptor_t); +			Size    = sizeof(USB_HID_Descriptor_HID_t);  			break;  		case DTYPE_Report:   			Address = &JoystickReport; diff --git a/Demos/Device/ClassDriver/Joystick/Descriptors.h b/Demos/Device/ClassDriver/Joystick/Descriptors.h index fe99395761..0d7d456604 100644 --- a/Demos/Device/ClassDriver/Joystick/Descriptors.h +++ b/Demos/Device/ClassDriver/Joystick/Descriptors.h @@ -51,7 +51,7 @@  		{  			USB_Descriptor_Configuration_Header_t Config;  			USB_Descriptor_Interface_t            HID_Interface; -			USB_HID_Descriptor_t                  HID_JoystickHID; +			USB_HID_Descriptor_HID_t              HID_JoystickHID;  	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;  		} USB_Descriptor_Configuration_t; diff --git a/Demos/Device/ClassDriver/Keyboard/Descriptors.c b/Demos/Device/ClassDriver/Keyboard/Descriptors.c index 9bd952b404..63114b1820 100644 --- a/Demos/Device/ClassDriver/Keyboard/Descriptors.c +++ b/Demos/Device/ClassDriver/Keyboard/Descriptors.c @@ -146,7 +146,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.HID_KeyboardHID =   		{   -			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID}, +			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},  			.HIDSpec                = VERSION_BCD(01.11),  			.CountryCode            = 0x00, @@ -245,7 +245,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,  			break;  		case DTYPE_HID:   			Address = &ConfigurationDescriptor.HID_KeyboardHID; -			Size    = sizeof(USB_HID_Descriptor_t); +			Size    = sizeof(USB_HID_Descriptor_HID_t);  			break;  		case DTYPE_Report:   			Address = &KeyboardReport; diff --git a/Demos/Device/ClassDriver/Keyboard/Descriptors.h b/Demos/Device/ClassDriver/Keyboard/Descriptors.h index cdab88c1ea..25629fd64c 100644 --- a/Demos/Device/ClassDriver/Keyboard/Descriptors.h +++ b/Demos/Device/ClassDriver/Keyboard/Descriptors.h @@ -51,7 +51,7 @@  		{  			USB_Descriptor_Configuration_Header_t Config;  			USB_Descriptor_Interface_t            HID_Interface; -			USB_HID_Descriptor_t                  HID_KeyboardHID; +			USB_HID_Descriptor_HID_t              HID_KeyboardHID;  	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;  		} USB_Descriptor_Configuration_t; diff --git a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c index dff0b8faca..4f7c55b099 100644 --- a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c +++ b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c @@ -179,7 +179,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.HID1_KeyboardHID =   		{   -			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID}, +			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},  			.HIDSpec                = VERSION_BCD(01.11),  			.CountryCode            = 0x00, @@ -216,7 +216,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.HID2_MouseHID =   		{   -			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID}, +			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},  			.HIDSpec                = VERSION_BCD(01.11),  			.CountryCode            = 0x00, @@ -317,12 +317,12 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,  			if (!(wIndex))  			{  				Address = &ConfigurationDescriptor.HID1_KeyboardHID; -				Size    = sizeof(USB_HID_Descriptor_t); +				Size    = sizeof(USB_HID_Descriptor_HID_t);  			}  			else  			{  				Address = &ConfigurationDescriptor.HID2_MouseHID; -				Size    = sizeof(USB_HID_Descriptor_t);			 +				Size    = sizeof(USB_HID_Descriptor_HID_t);			  			}  			break;  		case DTYPE_Report:  diff --git a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h index e4908f947a..b0d8f5a6ba 100644 --- a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h +++ b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h @@ -51,10 +51,10 @@  		{  			USB_Descriptor_Configuration_Header_t Config;  			USB_Descriptor_Interface_t            HID1_KeyboardInterface; -			USB_HID_Descriptor_t                  HID1_KeyboardHID; +			USB_HID_Descriptor_HID_t              HID1_KeyboardHID;  	        USB_Descriptor_Endpoint_t             HID1_ReportINEndpoint;  			USB_Descriptor_Interface_t            HID2_MouseInterface; -			USB_HID_Descriptor_t                  HID2_MouseHID; +			USB_HID_Descriptor_HID_t              HID2_MouseHID;  	        USB_Descriptor_Endpoint_t             HID2_ReportINEndpoint;  		} USB_Descriptor_Configuration_t; diff --git a/Demos/Device/ClassDriver/MIDI/Descriptors.c b/Demos/Device/ClassDriver/MIDI/Descriptors.c index fc3addb95e..34595419df 100644 --- a/Demos/Device/ClassDriver/MIDI/Descriptors.c +++ b/Demos/Device/ClassDriver/MIDI/Descriptors.c @@ -104,11 +104,11 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_ControlInterface_SPC =   		{ -			.Header                   = {.Size = sizeof(USB_Audio_Interface_AC_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Interface_AC_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_Header,  			.ACSpecification          = VERSION_BCD(01.00), -			.TotalLength              = sizeof(USB_Audio_Interface_AC_t), +			.TotalLength              = sizeof(USB_Audio_Descriptor_Interface_AC_t),  			.InCollection             = 1,  			.InterfaceNumbers         = {1}, @@ -132,7 +132,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_StreamInterface_SPC =   		{ -			.Header                   = {.Size = sizeof(USB_MIDI_AudioInterface_AS_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_AudioInterface_AS_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_General,  			.AudioSpecification       = VERSION_BCD(01.00), @@ -143,7 +143,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.MIDI_In_Jack_Emb =   		{ -			.Header                   = {.Size = sizeof(USB_MIDI_In_Jack_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_InputJack_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_InputJack,  			.JackType                 = MIDI_JACKTYPE_EMBEDDED, @@ -154,7 +154,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.MIDI_In_Jack_Ext =   		{ -			.Header                   = {.Size = sizeof(USB_MIDI_In_Jack_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_InputJack_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_InputJack,  			.JackType                 = MIDI_JACKTYPE_EXTERNAL, @@ -165,7 +165,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.MIDI_Out_Jack_Emb =   		{ -			.Header                   = {.Size = sizeof(USB_MIDI_Out_Jack_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_OutputJack_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_OutputJack,  			.JackType                 = MIDI_JACKTYPE_EMBEDDED, @@ -180,7 +180,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.MIDI_Out_Jack_Ext =   		{ -			.Header                   = {.Size = sizeof(USB_MIDI_Out_Jack_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_OutputJack_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_OutputJack,  			.JackType                 = MIDI_JACKTYPE_EXTERNAL, @@ -197,7 +197,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  		{  			.Endpoint =   				{ -					.Header              = {.Size = sizeof(USB_Audio_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint}, +					.Header              = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},  					.EndpointAddress     = (ENDPOINT_DESCRIPTOR_DIR_OUT | MIDI_STREAM_OUT_EPNUM),  					.Attributes          = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), @@ -211,7 +211,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.MIDI_In_Jack_Endpoint_SPC =   		{ -			.Header                   = {.Size = sizeof(USB_MIDI_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint}, +			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint},  			.Subtype                  = DSUBTYPE_General,  			.TotalEmbeddedJacks       = 0x01, @@ -222,7 +222,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  		{  			.Endpoint =   				{ -					.Header              = {.Size = sizeof(USB_Audio_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint}, +					.Header              = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},  					.EndpointAddress     = (ENDPOINT_DESCRIPTOR_DIR_IN | MIDI_STREAM_IN_EPNUM),  					.Attributes          = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), @@ -236,7 +236,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.MIDI_Out_Jack_Endpoint_SPC =   		{ -			.Header                   = {.Size = sizeof(USB_MIDI_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint}, +			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint},  			.Subtype                  = DSUBTYPE_General,  			.TotalEmbeddedJacks       = 0x01, diff --git a/Demos/Device/ClassDriver/MIDI/Descriptors.h b/Demos/Device/ClassDriver/MIDI/Descriptors.h index 8165fedf69..52ba98f060 100644 --- a/Demos/Device/ClassDriver/MIDI/Descriptors.h +++ b/Demos/Device/ClassDriver/MIDI/Descriptors.h @@ -59,19 +59,19 @@  		 */  		typedef struct  		{ -			USB_Descriptor_Configuration_Header_t Config; -			USB_Descriptor_Interface_t            Audio_ControlInterface; -			USB_Audio_Interface_AC_t              Audio_ControlInterface_SPC; -			USB_Descriptor_Interface_t            Audio_StreamInterface; -			USB_MIDI_AudioInterface_AS_t          Audio_StreamInterface_SPC; -			USB_MIDI_In_Jack_t                    MIDI_In_Jack_Emb; -			USB_MIDI_In_Jack_t                    MIDI_In_Jack_Ext; -			USB_MIDI_Out_Jack_t                   MIDI_Out_Jack_Emb; -			USB_MIDI_Out_Jack_t                   MIDI_Out_Jack_Ext; -			USB_Audio_StreamEndpoint_Std_t        MIDI_In_Jack_Endpoint; -			USB_MIDI_Jack_Endpoint_t              MIDI_In_Jack_Endpoint_SPC; -			USB_Audio_StreamEndpoint_Std_t        MIDI_Out_Jack_Endpoint; -			USB_MIDI_Jack_Endpoint_t              MIDI_Out_Jack_Endpoint_SPC; +			USB_Descriptor_Configuration_Header_t     Config; +			USB_Descriptor_Interface_t                Audio_ControlInterface; +			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC; +			USB_Descriptor_Interface_t                Audio_StreamInterface; +			USB_MIDI_Descriptor_AudioInterface_AS_t   Audio_StreamInterface_SPC; +			USB_MIDI_Descriptor_InputJack_t           MIDI_In_Jack_Emb; +			USB_MIDI_Descriptor_InputJack_t           MIDI_In_Jack_Ext; +			USB_MIDI_Descriptor_OutputJack_t          MIDI_Out_Jack_Emb; +			USB_MIDI_Descriptor_OutputJack_t          MIDI_Out_Jack_Ext; +			USB_Audio_Descriptor_StreamEndpoint_Std_t MIDI_In_Jack_Endpoint; +			USB_MIDI_Descriptor_Jack_Endpoint_t       MIDI_In_Jack_Endpoint_SPC; +			USB_Audio_Descriptor_StreamEndpoint_Std_t MIDI_Out_Jack_Endpoint; +			USB_MIDI_Descriptor_Jack_Endpoint_t       MIDI_Out_Jack_Endpoint_SPC;  		} USB_Descriptor_Configuration_t;  	/* Function Prototypes: */ diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c index 1ff64290c2..c14e4c7c9f 100644 --- a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c +++ b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c @@ -195,7 +195,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.HID_KeyboardHID =   		{   -			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID}, +			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},  			.HIDSpec                = VERSION_BCD(01.11),  			.CountryCode            = 0x00, @@ -294,7 +294,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,  			break;  		case DTYPE_HID:  			Address = &ConfigurationDescriptor.HID_KeyboardHID; -			Size    = sizeof(USB_HID_Descriptor_t); +			Size    = sizeof(USB_HID_Descriptor_HID_t);  			break;  		case DTYPE_Report:  			Address = &KeyboardReport; diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h index 2f71fc252f..678c8ec850 100644 --- a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h +++ b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h @@ -72,7 +72,7 @@  			USB_Descriptor_Endpoint_t             MS_DataInEndpoint;  			USB_Descriptor_Endpoint_t             MS_DataOutEndpoint;  			USB_Descriptor_Interface_t            HID_KeyboardInterface; -			USB_HID_Descriptor_t                  HID_KeyboardHID; +			USB_HID_Descriptor_HID_t              HID_KeyboardHID;  	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;  		} USB_Descriptor_Configuration_t; diff --git a/Demos/Device/ClassDriver/Mouse/Descriptors.c b/Demos/Device/ClassDriver/Mouse/Descriptors.c index 8fb71953d2..830255570d 100644 --- a/Demos/Device/ClassDriver/Mouse/Descriptors.c +++ b/Demos/Device/ClassDriver/Mouse/Descriptors.c @@ -140,7 +140,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.HID_MouseHID =   		{ -			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID}, +			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},  			.HIDSpec                = VERSION_BCD(01.11),  			.CountryCode            = 0x00, @@ -239,7 +239,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,  			break;  		case DTYPE_HID:   			Address = &ConfigurationDescriptor.HID_MouseHID; -			Size    = sizeof(USB_HID_Descriptor_t); +			Size    = sizeof(USB_HID_Descriptor_HID_t);  			break;  		case DTYPE_Report:   			Address = &MouseReport; diff --git a/Demos/Device/ClassDriver/Mouse/Descriptors.h b/Demos/Device/ClassDriver/Mouse/Descriptors.h index 2b1d7ce889..f482a69460 100644 --- a/Demos/Device/ClassDriver/Mouse/Descriptors.h +++ b/Demos/Device/ClassDriver/Mouse/Descriptors.h @@ -51,7 +51,7 @@  		{  			USB_Descriptor_Configuration_Header_t Config;  			USB_Descriptor_Interface_t            HID_Interface; -			USB_HID_Descriptor_t                  HID_MouseHID; +			USB_HID_Descriptor_HID_t              HID_MouseHID;  	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;  		} USB_Descriptor_Configuration_t; diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c index f32af19922..7d383a4cca 100644 --- a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c +++ b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c @@ -252,7 +252,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.HID_MouseHID =   		{ -			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID}, +			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},  			.HIDSpec                = VERSION_BCD(01.11),  			.CountryCode            = 0x00, @@ -351,7 +351,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,  			break;  		case DTYPE_HID:   			Address = &ConfigurationDescriptor.HID_MouseHID; -			Size    = sizeof(USB_HID_Descriptor_t); +			Size    = sizeof(USB_HID_Descriptor_HID_t);  			break;  		case DTYPE_Report:   			Address = &MouseReport; diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h index 3e68492a39..dfe6c11476 100644 --- a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h +++ b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h @@ -83,7 +83,7 @@  			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;  			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;  			USB_Descriptor_Interface_t               HID_Interface; -			USB_HID_Descriptor_t                     HID_MouseHID; +			USB_HID_Descriptor_HID_t                 HID_MouseHID;  	        USB_Descriptor_Endpoint_t                HID_ReportINEndpoint;  		} USB_Descriptor_Configuration_t; diff --git a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c index 8fb71953d2..830255570d 100644 --- a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c +++ b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c @@ -140,7 +140,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.HID_MouseHID =   		{ -			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID}, +			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},  			.HIDSpec                = VERSION_BCD(01.11),  			.CountryCode            = 0x00, @@ -239,7 +239,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,  			break;  		case DTYPE_HID:   			Address = &ConfigurationDescriptor.HID_MouseHID; -			Size    = sizeof(USB_HID_Descriptor_t); +			Size    = sizeof(USB_HID_Descriptor_HID_t);  			break;  		case DTYPE_Report:   			Address = &MouseReport; diff --git a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h index 2b1d7ce889..f482a69460 100644 --- a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h +++ b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h @@ -51,7 +51,7 @@  		{  			USB_Descriptor_Configuration_Header_t Config;  			USB_Descriptor_Interface_t            HID_Interface; -			USB_HID_Descriptor_t                  HID_MouseHID; +			USB_HID_Descriptor_HID_t              HID_MouseHID;  	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;  		} USB_Descriptor_Configuration_t; diff --git a/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c b/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c index 677b96112b..66c4f1302f 100644 --- a/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c +++ b/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c @@ -129,7 +129,7 @@ int main(void)  				printf_P(PSTR("Device ID: %s.\r\n"), DeviceIDString); -				char  TestPageData[]    = "\033%-12345X\033E" "LUFA PCL Test Page" "\033E\033%-12345X"; +				char     TestPageData[] = "\033%-12345X\033E" "LUFA PCL Test Page" "\033E\033%-12345X";  				uint16_t TestPageLength = strlen(TestPageData);  				printf_P(PSTR("Sending Test Page (%d bytes)...\r\n"), TestPageLength); diff --git a/LUFA/Drivers/USB/Class/Common/Audio.h b/LUFA/Drivers/USB/Class/Common/Audio.h index 99bdb36597..ec7f148a73 100644 --- a/LUFA/Drivers/USB/Class/Common/Audio.h +++ b/LUFA/Drivers/USB/Class/Common/Audio.h @@ -236,103 +236,244 @@  		#define EP_ACCEPTS_SMALL_PACKETS     (0 << 7)  	/* Type Defines: */ -		/** \brief Audio class-specific Interface Descriptor. +		/** \brief Audio class-specific Interface Descriptor (LUFA naming conventions).  		 *  		 *  Type define for an Audio class-specific interface descriptor. This follows a regular interface descriptor to  		 *  supply extra information about the audio device's layout to the host. See the USB Audio specification for more  		 *  details. +		 * +		 *  \see \ref USB_Audio_StdDescriptor_Interface_AC_t for the version of this type with standard element names.  		 */  		typedef struct  		{ -			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */ -			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ +			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */ +			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ + +			uint16_t                ACSpecification; /**< Binary coded decimal value, indicating the supported Audio Class specification version. */ +			uint16_t                TotalLength; /**< Total length of the Audio class-specific descriptors, including this descriptor. */ +			 +			uint8_t                 InCollection; /**< Total number of audio class interfaces within this device. */ +			uint8_t                 InterfaceNumbers[1]; /**< Interface numbers of each audio interface. */ +		} USB_Audio_Descriptor_Interface_AC_t; + +		/** \brief Audio class-specific Interface Descriptor (USB-IF naming conventions). +		 * +		 *  Type define for an Audio class-specific interface descriptor. This follows a regular interface descriptor to +		 *  supply extra information about the audio device's layout to the host. See the USB Audio specification for more +		 *  details. +		 * +		 *  \see \ref USB_Audio_Descriptor_Interface_AC_t for the version of this type with non-standard LUFA specific +		 *       element names. +		 */ +		typedef struct +		{ +			uint8_t  bLength; /**< Size of the descriptor, in bytes. */ +			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value +				                      *   given by the specific class. +				                      */ -			uint16_t                  ACSpecification; /**< Binary coded decimal value, indicating the supported Audio Class specification version. */ -			uint16_t                  TotalLength; /**< Total length of the Audio class-specific descriptors, including this descriptor. */ +			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ + +			uint16_t bcdADC; /**< Binary coded decimal value, indicating the supported Audio Class specification version. */ +			uint16_t wTotalLength; /**< Total length of the Audio class-specific descriptors, including this descriptor. */ -			uint8_t                   InCollection; /**< Total number of audio class interfaces within this device. */ -			uint8_t                   InterfaceNumbers[1]; /**< Interface numbers of each audio interface. */ -		} USB_Audio_Interface_AC_t; +			uint8_t  bInCollection; /**< Total number of audio class interfaces within this device. */ +			uint8_t  bInterfaceNumbers[1]; /**< Interface numbers of each audio interface. */ +		} USB_Audio_StdDescriptor_Interface_AC_t; -		/** \brief Audio class-specific Feature Unit Descriptor. +		/** \brief Audio class-specific Feature Unit Descriptor (LUFA naming conventions).  		 *  		 *  Type define for an Audio class-specific Feature Unit descriptor. This indicates to the host what features  		 *  are present in the device's audio stream for basic control, such as per-channel volume. See the USB Audio  		 *  specification for more details. +		 * +		 *  \see \ref USB_Audio_StdDescriptor_FeatureUnit_t for the version of this type with standard element names.  		 */  		typedef struct  		{ -			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */ -			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ +			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */ +			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ -			uint8_t                   UnitID; /**< ID value of this feature unit - must be a unique value within the device. */ -			uint8_t                   SourceID; /**< Source ID value of the audio source input into this feature unit. */ +			uint8_t                 UnitID; /**< ID value of this feature unit - must be a unique value within the device. */ +			uint8_t                 SourceID; /**< Source ID value of the audio source input into this feature unit. */ -			uint8_t                   ControlSize; /**< Size of each element in the ChanelControlls array. */ -			uint8_t                   ChannelControls[3]; /**< Feature masks for the control channel, and each separate audio channel. */ +			uint8_t                 ControlSize; /**< Size of each element in the ChanelControlls array. */ +			uint8_t                 ChannelControls[3]; /**< Feature masks for the control channel, and each separate audio channel. */ -			uint8_t                   FeatureUnitStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */ -		} USB_Audio_FeatureUnit_t; +			uint8_t                 FeatureUnitStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */ +		} USB_Audio_Descriptor_FeatureUnit_t; -		/** \brief Audio class-specific Input Terminal Descriptor. +		/** \brief Audio class-specific Feature Unit Descriptor (USB-IF naming conventions). +		 * +		 *  Type define for an Audio class-specific Feature Unit descriptor. This indicates to the host what features +		 *  are present in the device's audio stream for basic control, such as per-channel volume. See the USB Audio +		 *  specification for more details. +		 * +		 *  \see \ref USB_Audio_Descriptor_FeatureUnit_t for the version of this type with non-standard LUFA specific +		 *       element names. +		 */ +		typedef struct +		{ +			uint8_t bLength; /**< Size of the descriptor, in bytes. */ +			uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value +				                      *   given by the specific class. +				                      */ + +			uint8_t bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ +			 +			uint8_t bUnitID; /**< ID value of this feature unit - must be a unique value within the device. */ +			uint8_t bSourceID; /**< Source ID value of the audio source input into this feature unit. */ +			 +			uint8_t bControlSize; /**< Size of each element in the ChanelControlls array. */ +			uint8_t bmaControls[3]; /**< Feature masks for the control channel, and each separate audio channel. */ +			 +			uint8_t iFeature; /**< Index of a string descriptor describing this descriptor within the device. */ +		} USB_Audio_StdDescriptor_FeatureUnit_t; + +		/** \brief Audio class-specific Input Terminal Descriptor (LUFA naming conventions).  		 *  		 *  Type define for an Audio class-specific input terminal descriptor. This indicates to the host that the device  		 *  contains an input audio source, either from a physical terminal on the device, or a logical terminal (for example,  		 *  a USB endpoint). See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_Audio_StdDescriptor_InputTerminal_t for the version of this type with standard element names.  		 */  		typedef struct  		{ -			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */ -			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ +			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */ +			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ -			uint8_t                   TerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */ -			uint16_t                  TerminalType; /**< Type of terminal, a TERMINAL_* mask. */ -			uint8_t                   AssociatedOutputTerminal; /**< ID of associated output terminal, for physically grouped terminals +			uint8_t                 TerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */ +			uint16_t                TerminalType; /**< Type of terminal, a TERMINAL_* mask. */ +			uint8_t                 AssociatedOutputTerminal; /**< ID of associated output terminal, for physically grouped terminals  			                                                     *   such as the speaker and microphone of a phone handset.  			                                                     */ -			uint8_t                   TotalChannels; /**< Total number of separate audio channels within this interface (right, left, etc.) */ -			uint16_t                  ChannelConfig; /**< CHANNEL_* masks indicating what channel layout is supported by this terminal. */ +			uint8_t                 TotalChannels; /**< Total number of separate audio channels within this interface (right, left, etc.) */ +			uint16_t                ChannelConfig; /**< CHANNEL_* masks indicating what channel layout is supported by this terminal. */ -			uint8_t                   ChannelStrIndex; /**< Index of a string descriptor describing this channel within the device. */ -			uint8_t                   TerminalStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */ -		} USB_Audio_InputTerminal_t; +			uint8_t                 ChannelStrIndex; /**< Index of a string descriptor describing this channel within the device. */ +			uint8_t                 TerminalStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */ +		} USB_Audio_Descriptor_InputTerminal_t; -		/** \brief Audio class-specific Output Terminal Descriptor. +		/** \brief Audio class-specific Input Terminal Descriptor (USB-IF naming conventions). +		 * +		 *  Type define for an Audio class-specific input terminal descriptor. This indicates to the host that the device +		 *  contains an input audio source, either from a physical terminal on the device, or a logical terminal (for example, +		 *  a USB endpoint). See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_Audio_Descriptor_InputTerminal_t for the version of this type with non-standard LUFA specific +		 *       element names. +		 */ +		typedef struct +		{ +			uint8_t  bLength; /**< Size of the descriptor, in bytes. */ +			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value +				                      *   given by the specific class. +				                      */ + +			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ +			uint8_t  bTerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */ +			uint16_t wTerminalType; /**< Type of terminal, a TERMINAL_* mask. */ +			uint8_t  bAssocTerminal; /**< ID of associated output terminal, for physically grouped terminals +			                          *   such as the speaker and microphone of a phone handset. +			                          */ +			uint8_t  bNrChannels; /**< Total number of separate audio channels within this interface (right, left, etc.) */ +			uint16_t wChannelConfig; /**< CHANNEL_* masks indicating what channel layout is supported by this terminal. */ +			 +			uint8_t  iChannelNames; /**< Index of a string descriptor describing this channel within the device. */ +			uint8_t  iTerminal; /**< Index of a string descriptor describing this descriptor within the device. */ +		} USB_Audio_StdDescriptor_InputTerminal_t; + +		/** \brief Audio class-specific Output Terminal Descriptor (LUFA naming conventions).  		 *  		 *  Type define for an Audio class-specific output terminal descriptor. This indicates to the host that the device  		 *  contains an output audio sink, either to a physical terminal on the device, or a logical terminal (for example,  		 *  a USB endpoint). See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_Audio_StdDescriptor_OutputTerminal_t for the version of this type with standard element names.  		 */  		typedef struct  		{ -			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */ -			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ +			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */ +			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ -			uint8_t                   TerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */ -			uint16_t                  TerminalType; /**< Type of terminal, a TERMINAL_* mask. */ -			uint8_t                   AssociatedInputTerminal; /**< ID of associated input terminal, for physically grouped terminals +			uint8_t                 TerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */ +			uint16_t                TerminalType; /**< Type of terminal, a TERMINAL_* mask. */ +			uint8_t                 AssociatedInputTerminal; /**< ID of associated input terminal, for physically grouped terminals  			                                                    *   such as the speaker and microphone of a phone handset.  			                                                    */ -			uint8_t                   SourceID; /**< ID value of the unit this terminal's audio is sourced from. */ +			uint8_t                 SourceID; /**< ID value of the unit this terminal's audio is sourced from. */ -			uint8_t                   TerminalStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */ -		} USB_Audio_OutputTerminal_t; +			uint8_t                 TerminalStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */ +		} USB_Audio_Descriptor_OutputTerminal_t; + +		/** \brief Audio class-specific Output Terminal Descriptor (USB-IF naming conventions). +		 * +		 *  Type define for an Audio class-specific output terminal descriptor. This indicates to the host that the device +		 *  contains an output audio sink, either to a physical terminal on the device, or a logical terminal (for example, +		 *  a USB endpoint). See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_Audio_Descriptor_OutputTerminal_t for the version of this type with non-standard LUFA specific +		 *       element names. +		 */ +		typedef struct +		{ +			uint8_t  bLength; /**< Size of the descriptor, in bytes. */ +			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value +				                      *   given by the specific class. +				                      */ + +			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */		 +			uint8_t  bTerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */ +			uint16_t wTerminalType; /**< Type of terminal, a TERMINAL_* mask. */ +			uint8_t  bAssocTerminal; /**< ID of associated input terminal, for physically grouped terminals +			                          *   such as the speaker and microphone of a phone handset. +			                          */ +			uint8_t  bSourceID; /**< ID value of the unit this terminal's audio is sourced from. */ +			 +			uint8_t  iTerminal; /**< Index of a string descriptor describing this descriptor within the device. */ +		} USB_Audio_StdDescriptor_OutputTerminal_t; -		/** \brief Audio class-specific Streaming Audio Interface Descriptor. +		/** \brief Audio class-specific Streaming Audio Interface Descriptor (LUFA naming conventions).  		 *  		 *  Type define for an Audio class-specific streaming interface descriptor. This indicates to the host  		 *  how audio streams within the device are formatted. See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_Audio_StdDescriptor_Interface_AS_t for the version of this type with standard element names.  		 */  		typedef struct  		{ -			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */ -			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ +			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */ +			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ -			uint8_t                   TerminalLink; /**< ID value of the output terminal this descriptor is describing. */ +			uint8_t                 TerminalLink; /**< ID value of the output terminal this descriptor is describing. */ -			uint8_t                   FrameDelay; /**< Delay in frames resulting from the complete sample processing from input to output. */ -			uint16_t                  AudioFormat; /**< Format of the audio stream, see Audio Device Formats specification. */ -		} USB_Audio_Interface_AS_t; +			uint8_t                 FrameDelay; /**< Delay in frames resulting from the complete sample processing from input to output. */ +			uint16_t                AudioFormat; /**< Format of the audio stream, see Audio Device Formats specification. */ +		} USB_Audio_Descriptor_Interface_AS_t; + +		/** \brief Audio class-specific Streaming Audio Interface Descriptor (USB-IF naming conventions). +		 * +		 *  Type define for an Audio class-specific streaming interface descriptor. This indicates to the host +		 *  how audio streams within the device are formatted. See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_Audio_Descriptor_Interface_AS_t for the version of this type with non-standard LUFA specific +		 *       element names. +		 */ +		typedef struct +		{ +			uint8_t  bLength; /**< Size of the descriptor, in bytes. */ +			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value +				                      *   given by the specific class. +				                      */ + +			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */		 +			 +			uint8_t  bTerminalLink; /**< ID value of the output terminal this descriptor is describing. */ +			 +			uint8_t  bDelay; /**< Delay in frames resulting from the complete sample processing from input to output. */ +			uint16_t wFormatTag; /**< Format of the audio stream, see Audio Device Formats specification. */ +		} USB_Audio_StdDescriptor_Interface_AS_t;  		/** \brief 24-Bit Audio Frequency Structure.  		 * @@ -341,35 +482,67 @@  		 */  		typedef struct  		{ -			uint16_t                  LowWord; /**< Low 16 bits of the 24-bit value. */ -			uint8_t                   HighByte; /**< Upper 8 bits of the 24-bit value. */ +			uint16_t    LowWord; /**< Low 16 bits of the 24-bit value. */ +			uint8_t     HighByte; /**< Upper 8 bits of the 24-bit value. */  		} USB_Audio_SampleFreq_t; -		/** \brief Audio class-specific Format Descriptor. +		/** \brief Audio class-specific Format Descriptor (LUFA naming conventions).  		 *  		 *  Type define for an Audio class-specific audio format descriptor. This is used to give the host full details  		 *  about the number of channels, the sample resolution, acceptable sample frequencies and encoding method used  		 *  in the device's audio streams. See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_Audio_StdDescriptor_Format_t for the version of this type with standard element names.  		 */  		typedef struct  		{ -			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */ -			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ +			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */ +			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ + +			uint8_t                 FormatType; /**< Format of the audio stream, see Audio Device Formats specification. */ +			uint8_t                 Channels; /**< Total number of discrete channels in the stream. */ +			 +			uint8_t                 SubFrameSize; /**< Size in bytes of each channel's sample data in the stream. */ +			uint8_t                 BitResolution; /**< Bits of resolution of each channel's samples in the stream. */ + +			uint8_t                 SampleFrequencyType; /**< Total number of sample frequencies supported by the device. */			 +			USB_Audio_SampleFreq_t  SampleFrequencies[AUDIO_TOTAL_SAMPLE_RATES]; /**< Sample frequencies supported by the device (must be 24-bit). */ +		} USB_Audio_Descriptor_Format_t; + +		/** \brief Audio class-specific Format Descriptor (USB-IF naming conventions). +		 * +		 *  Type define for an Audio class-specific audio format descriptor. This is used to give the host full details +		 *  about the number of channels, the sample resolution, acceptable sample frequencies and encoding method used +		 *  in the device's audio streams. See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_Audio_Descriptor_Format_t for the version of this type with non-standard LUFA specific +		 *       element names. +		 */ +		typedef struct +		{ +			uint8_t  bLength; /**< Size of the descriptor, in bytes. */ +			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value +				                      *   given by the specific class. +				                      */ -			uint8_t                   FormatType; /**< Format of the audio stream, see Audio Device Formats specification. */ -			uint8_t                   Channels; /**< Total number of discrete channels in the stream. */ +			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */		 + +			uint8_t  bFormatType; /**< Format of the audio stream, see Audio Device Formats specification. */ +			uint8_t  bNrChannels; /**< Total number of discrete channels in the stream. */ -			uint8_t                   SubFrameSize; /**< Size in bytes of each channel's sample data in the stream. */ -			uint8_t                   BitResolution; /**< Bits of resolution of each channel's samples in the stream. */ +			uint8_t  bSubFrameSize; /**< Size in bytes of each channel's sample data in the stream. */ +			uint8_t  bBitResolution; /**< Bits of resolution of each channel's samples in the stream. */ -			uint8_t                   SampleFrequencyType; /**< Total number of sample frequencies supported by the device. */			 -			USB_Audio_SampleFreq_t    SampleFrequencies[AUDIO_TOTAL_SAMPLE_RATES]; /**< Sample frequencies supported by the device. */ -		} USB_Audio_Format_t; +			uint8_t  bSampleFrequencyType; /**< Total number of sample frequencies supported by the device. */			 +			uint8_t  SampleFrequencies[AUDIO_TOTAL_SAMPLE_RATES * 3]; /**< Sample frequencies supported by the device (must be 24-bit). */ +		} USB_Audio_StdDescriptor_Format_t; -		/** \brief Audio class-specific Streaming Endpoint Descriptor. +		/** \brief Audio class-specific Streaming Endpoint Descriptor (LUFA naming conventions).  		 *  		 *  Type define for an Audio class-specific endpoint descriptor. This contains a regular endpoint   		 *  descriptor with a few Audio-class-specific extensions. See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_Audio_StdDescriptor_StreamEndpoint_Std_t for the version of this type with standard element names.  		 */  		typedef struct  		{ @@ -377,13 +550,46 @@  			uint8_t                   Refresh; /**< Always set to zero for Audio class devices. */  			uint8_t                   SyncEndpointNumber; /**< Endpoint address to send synchronization information to, if needed (zero otherwise). */ -		} USB_Audio_StreamEndpoint_Std_t; +		} USB_Audio_Descriptor_StreamEndpoint_Std_t; + +		/** \brief Audio class-specific Streaming Endpoint Descriptor (USB-IF naming conventions). +		 * +		 *  Type define for an Audio class-specific endpoint descriptor. This contains a regular endpoint  +		 *  descriptor with a few Audio-class-specific extensions. See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_Audio_Descriptor_StreamEndpoint_Std_t for the version of this type with non-standard LUFA specific +		 *       element names. +		 */ +		typedef struct +		{ +			uint8_t  bLength; /**< Size of the descriptor, in bytes. */ +			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a +									   *   value given by the specific class. +									   */ +			uint8_t  bEndpointAddress; /**< Logical address of the endpoint within the device for the current  +										*   configuration, including direction mask. +										*/ +			uint8_t  bmAttributes; /**< Endpoint attributes, comprised of a mask of the endpoint type (EP_TYPE_*)  +									*   and attributes (ENDPOINT_ATTR_*) masks. +									*/ +			uint16_t wMaxPacketSize; /**< Size of the endpoint bank, in bytes. This indicates the maximum packet size +									  *   that the endpoint can receive at a time. +									  */ +			uint8_t  bInterval; /**< Polling interval in milliseconds for the endpoint if it is an INTERRUPT or +								 *   ISOCHRONOUS type. +								 */ +								  +			uint8_t  bRefresh; /**< Always set to zero for Audio class devices. */ +			uint8_t  bSynchAddress; /**< Endpoint address to send synchronization information to, if needed (zero otherwise). */ +		} USB_Audio_StdDescriptor_StreamEndpoint_Std_t; -		/** \brief Audio class-specific Extended Endpoint Descriptor. +		/** \brief Audio class-specific Extended Endpoint Descriptor (LUFA naming conventions).  		 *  		 *  Type define for an Audio class-specific extended endpoint descriptor. This contains extra information  		 *  on the usage of endpoints used to stream audio in and out of the USB Audio device, and follows an Audio  		 *  class-specific extended endpoint descriptor. See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_Audio_StdDescriptor_StreamEndpoint_Spc_t for the version of this type with standard element names.  		 */  		typedef struct  		{ @@ -394,8 +600,32 @@  			uint8_t                   LockDelayUnits; /**< Units used for the LockDelay field, see Audio class specification. */  			uint16_t                  LockDelay; /**< Time required to internally lock endpoint's internal clock recovery circuitry. */ -		} USB_Audio_StreamEndpoint_Spc_t; +		} USB_Audio_Descriptor_StreamEndpoint_Spc_t; +		/** \brief Audio class-specific Extended Endpoint Descriptor (USB-IF naming conventions). +		 * +		 *  Type define for an Audio class-specific extended endpoint descriptor. This contains extra information +		 *  on the usage of endpoints used to stream audio in and out of the USB Audio device, and follows an Audio +		 *  class-specific extended endpoint descriptor. See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_Audio_Descriptor_StreamEndpoint_Spc_t for the version of this type with non-standard LUFA specific +		 *       element names. +		 */ +		typedef struct +		{ +			uint8_t  bLength; /**< Size of the descriptor, in bytes. */ +			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value +				                      *   given by the specific class. +				                      */ + +			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */		 +			 +			uint8_t  bmAttributes; /**< Audio class-specific endpoint attributes, such as ACCEPTS_SMALL_PACKETS. */ + +			uint8_t  bLockDelayUnits; /**< Units used for the LockDelay field, see Audio class specification. */ +			uint16_t wLockDelay; /**< Time required to internally lock endpoint's internal clock recovery circuitry. */ +		} USB_Audio_StdDescriptor_StreamEndpoint_Spc_t; +		  	/* Disable C linkage for C++ Compilers: */  		#if defined(__cplusplus)  			} diff --git a/LUFA/Drivers/USB/Class/Common/HID.h b/LUFA/Drivers/USB/Class/Common/HID.h index 739a7ab332..4c7abc1069 100644 --- a/LUFA/Drivers/USB/Class/Common/HID.h +++ b/LUFA/Drivers/USB/Class/Common/HID.h @@ -145,23 +145,49 @@  			REPORT_ITEM_TYPE_Feature              = 2, /**< Indicates that the item is a FEATURE report type. */  		}; -		/** \brief HID class-specific HID Descriptor. +		/** \brief HID class-specific HID Descriptor (LUFA naming conventions).  		 *  		 *  Type define for the HID class-specific HID descriptor, to describe the HID device's specifications. Refer to the HID  		 *  specification for details on the structure elements. +		 * +		 *  \see \ref USB_HID_StdDescriptor_HID_t for the version of this type with standard element names. +		 */ +		typedef struct +		{ +			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */ +				 +			uint16_t                HIDSpec; /**< BCD encoded version that the HID descriptor and device complies to. */ +			uint8_t                 CountryCode; /**< Country code of the localized device, or zero if universal. */ +		 +			uint8_t                 TotalReportDescriptors; /**< Total number of HID report descriptors for the interface. */ + +			uint8_t                 HIDReportType; /**< Type of HID report, set to \ref DTYPE_Report. */ +			uint16_t                HIDReportLength; /**< Length of the associated HID report descriptor, in bytes. */ +		} USB_HID_Descriptor_HID_t; + +		/** \brief HID class-specific HID Descriptor (USB-IF naming conventions). +		 * +		 *  Type define for the HID class-specific HID descriptor, to describe the HID device's specifications. Refer to the HID +		 *  specification for details on the structure elements. +		 * +		 *  \see \ref USB_HID_Descriptor_HID_t for the version of this type with non-standard LUFA specific +		 *       element names.  		 */  		typedef struct  		{ -			USB_Descriptor_Header_t  Header; /**< Regular descriptor header containing the descriptor's type and length. */ +			uint8_t  bLength; /**< Size of the descriptor, in bytes. */ +			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value +				                      *   given by the specific class. +				                      */ -			uint16_t                 HIDSpec; /**< BCD encoded version that the HID descriptor and device complies to. */ -			uint8_t                  CountryCode; /**< Country code of the localized device, or zero if universal. */ +			uint16_t bcdHID; /**< BCD encoded version that the HID descriptor and device complies to. */ +			uint8_t  bCountryCode; /**< Country code of the localized device, or zero if universal. */ -			uint8_t                  TotalReportDescriptors; /**< Total number of HID report descriptors for the interface. */ +			uint8_t  bNumDescriptors; /**< Total number of HID report descriptors for the interface. */ -			uint8_t                  HIDReportType; /**< Type of HID report, set to \ref DTYPE_Report. */ -			uint16_t                 HIDReportLength; /**< Length of the associated HID report descriptor, in bytes. */ -		} USB_HID_Descriptor_t; +			uint8_t  bDescriptorType2; /**< Type of HID report, set to \ref DTYPE_Report. */ +			uint16_t wDescriptorLength; /**< Length of the associated HID report descriptor, in bytes. */ +		} USB_HID_StdDescriptor_HID_t;  		/** \brief Standard HID Boot Protocol Mouse Report.  		 * diff --git a/LUFA/Drivers/USB/Class/Common/MIDI.h b/LUFA/Drivers/USB/Class/Common/MIDI.h index 688ef09b32..0c6223b5b6 100644 --- a/LUFA/Drivers/USB/Class/Common/MIDI.h +++ b/LUFA/Drivers/USB/Class/Common/MIDI.h @@ -99,43 +99,95 @@  		#define MIDI_CHANNEL(channel)        ((channel) - 1)  	/* Type Defines: */ -		/** \brief MIDI class-specific Streaming Interface Descriptor. +		/** \brief MIDI class-specific Streaming Interface Descriptor (LUFA naming conventions).  		 *  		 *  Type define for an Audio class-specific MIDI streaming interface descriptor. This indicates to the host  		 *  how MIDI the specification compliance of the device and the total length of the Audio class-specific descriptors.  		 *  See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_MIDI_StdDescriptor_AudioInterface_AS_t for the version of this type with standard element names.  		 */  		typedef struct  		{ -			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */ -			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ +			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */ +			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ -			uint16_t                  AudioSpecification; /**< Binary coded decimal value, indicating the supported Audio Class +			uint16_t                AudioSpecification; /**< Binary coded decimal value, indicating the supported Audio Class  			                                               *   specification version.  			                                               */ -			uint16_t                  TotalLength; /**< Total length of the Audio class-specific descriptors, including this descriptor. */ -		} USB_MIDI_AudioInterface_AS_t; +			uint16_t                TotalLength; /**< Total length of the Audio class-specific descriptors, including this descriptor. */ +		} USB_MIDI_Descriptor_AudioInterface_AS_t; -		/** \brief MIDI class-specific Input Jack Descriptor. +		/** \brief MIDI class-specific Streaming Interface Descriptor (USB-IF naming conventions). +		 * +		 *  Type define for an Audio class-specific MIDI streaming interface descriptor. This indicates to the host +		 *  how MIDI the specification compliance of the device and the total length of the Audio class-specific descriptors. +		 *  See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_MIDI_Descriptor_AudioInterface_AS_t for the version of this type with non-standard LUFA specific +		 *       element names. +		 */ +		typedef struct +		{ +			uint8_t  bLength; /**< Size of the descriptor, in bytes. */ +			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value +				                      *   given by the specific class. +				                      */ + +			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ +			 +			uint16_t bcdMSC; /**< Binary coded decimal value, indicating the supported MIDI Class specification version. */ +			uint16_t wTotalLength; /**< Total length of the Audio class-specific descriptors, including this descriptor. */ +		} USB_MIDI_StdDescriptor_AudioInterface_AS_t; + +		/** \brief MIDI class-specific Input Jack Descriptor (LUFA naming conventions).  		 *  		 *  Type define for an Audio class-specific MIDI IN jack. This gives information to the host on a MIDI input, either  		 *  a physical input jack, or a logical jack (receiving input data internally, or from the host via an endpoint). +		 * +		 *  \see \ref USB_MIDI_StdDescriptor_InputJack_t for the version of this type with standard element names.  		 */  		typedef struct  		{ -			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */ -			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ +			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */ +			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ -			uint8_t                   JackType; /**< Type of jack, one of the JACKTYPE_* mask values. */ -			uint8_t                   JackID; /**< ID value of this jack - must be a unique value within the device. */ +			uint8_t                 JackType; /**< Type of jack, one of the JACKTYPE_* mask values. */ +			uint8_t                 JackID; /**< ID value of this jack - must be a unique value within the device. */ -			uint8_t                   JackStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */ -		} USB_MIDI_In_Jack_t; +			uint8_t                 JackStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */ +		} USB_MIDI_Descriptor_InputJack_t; + -		/** \brief MIDI class-specific Output Jack Descriptor. +		/** \brief MIDI class-specific Input Jack Descriptor (USB-IF naming conventions). +		 * +		 *  Type define for an Audio class-specific MIDI IN jack. This gives information to the host on a MIDI input, either +		 *  a physical input jack, or a logical jack (receiving input data internally, or from the host via an endpoint). +		 * +		 *  \see \ref USB_MIDI_Descriptor_InputJack_t for the version of this type with non-standard LUFA specific +		 *       element names. +		 */ +		typedef struct +		{ +			uint8_t  bLength; /**< Size of the descriptor, in bytes. */ +			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value +				                      *   given by the specific class. +				                      */ + +			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ + +			uint8_t  bJackType; /**< Type of jack, one of the JACKTYPE_* mask values. */ +			uint8_t  bJackID; /**< ID value of this jack - must be a unique value within the device. */ +			 +			uint8_t  iJack; /**< Index of a string descriptor describing this descriptor within the device. */ +		} USB_MIDI_StdDescriptor_InputJack_t; + +		/** \brief MIDI class-specific Output Jack Descriptor (LUFA naming conventions).  		 *  		 *  Type define for an Audio class-specific MIDI OUT jack. This gives information to the host on a MIDI output, either  		 *  a physical output jack, or a logical jack (sending output data internally, or to the host via an endpoint). +		 * +		 *  \see \ref USB_MIDI_StdDescriptor_OutputJack_t for the version of this type with standard element names.  		 */  		typedef struct  		{ @@ -150,13 +202,42 @@  			uint8_t                   SourcePinID[1]; /**< Pin number in the input jack of each output pin's source data. */  			uint8_t                   JackStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */ -		} USB_MIDI_Out_Jack_t; +		} USB_MIDI_Descriptor_OutputJack_t; -		/** \brief Audio class-specific Jack Endpoint Descriptor. +		/** \brief MIDI class-specific Output Jack Descriptor (USB-IF naming conventions). +		 * +		 *  Type define for an Audio class-specific MIDI OUT jack. This gives information to the host on a MIDI output, either +		 *  a physical output jack, or a logical jack (sending output data internally, or to the host via an endpoint). +		 * +		 *  \see \ref USB_MIDI_Descriptor_OutputJack_t for the version of this type with non-standard LUFA specific +		 *       element names. +		 */ +		typedef struct +		{ +			uint8_t  bLength; /**< Size of the descriptor, in bytes. */ +			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value +				                      *   given by the specific class. +				                      */ + +			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ + +			uint8_t  bJackType; /**< Type of jack, one of the JACKTYPE_* mask values. */ +			uint8_t  bJackID; /**< ID value of this jack - must be a unique value within the device. */ +			 +			uint8_t  bNrInputPins; /**< Number of output channels within the jack, either physical or logical. */ +			uint8_t  baSourceID[1]; /**< ID of each output pin's source data jack. */ +			uint8_t  baSourcePin[1]; /**< Pin number in the input jack of each output pin's source data. */ +			 +			uint8_t  iJack; /**< Index of a string descriptor describing this descriptor within the device. */ +		} USB_MIDI_StdDescriptor_OutputJack_t; + +		/** \brief Audio class-specific Jack Endpoint Descriptor (LUFA naming conventions).  		 *  		 *  Type define for an Audio class-specific extended MIDI jack endpoint descriptor. This contains extra information  		 *  on the usage of MIDI endpoints used to stream MIDI events in and out of the USB Audio device, and follows an Audio  		 *  class-specific extended MIDI endpoint descriptor. See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_MIDI_StdDescriptor_Jack_Endpoint_t for the version of this type with standard element names.  		 */  		typedef struct  		{ @@ -165,7 +246,29 @@  			uint8_t                   TotalEmbeddedJacks; /**< Total number of jacks inside this endpoint. */  			uint8_t                   AssociatedJackID[1]; /**< IDs of each jack inside the endpoint. */ -		} USB_MIDI_Jack_Endpoint_t; +		} USB_MIDI_Descriptor_Jack_Endpoint_t; + +		/** \brief Audio class-specific Jack Endpoint Descriptor (USB-IF naming conventions). +		 * +		 *  Type define for an Audio class-specific extended MIDI jack endpoint descriptor. This contains extra information +		 *  on the usage of MIDI endpoints used to stream MIDI events in and out of the USB Audio device, and follows an Audio +		 *  class-specific extended MIDI endpoint descriptor. See the USB Audio specification for more details. +		 * +		 *  \see \ref USB_MIDI_Descriptor_Jack_Endpoint_t for the version of this type with non-standard LUFA specific +		 *       element names. +		 */ +		typedef struct +		{ +			uint8_t  bLength; /**< Size of the descriptor, in bytes. */ +			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value +				                      *   given by the specific class. +				                      */ + +			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */ + +			uint8_t  bNumEmbMIDIJack; /**< Total number of jacks inside this endpoint. */ +			uint8_t  bAssocJackID[1]; /**< IDs of each jack inside the endpoint. */ +		} USB_MIDI_StdDescriptor_Jack_Endpoint_t;  		/** \brief MIDI Class Driver Event Packet.  		 * diff --git a/LUFA/Drivers/USB/Class/Host/HID.c b/LUFA/Drivers/USB/Class/Host/HID.c index 66c044b563..0642ecd405 100644 --- a/LUFA/Drivers/USB/Class/Host/HID.c +++ b/LUFA/Drivers/USB/Class/Host/HID.c @@ -69,7 +69,7 @@ uint8_t HID_Host_ConfigurePipes(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo  		return HID_ENUMERROR_NoHIDDescriptorFound;  	} -	HIDInterfaceInfo->State.HIDReportSize = DESCRIPTOR_CAST(ConfigDescriptorData, USB_HID_Descriptor_t).HIDReportLength; +	HIDInterfaceInfo->State.HIDReportSize = DESCRIPTOR_CAST(ConfigDescriptorData, USB_HID_Descriptor_HID_t).HIDReportLength;  	while (FoundEndpoints != (HID_FOUND_DATAPIPE_IN | HID_FOUND_DATAPIPE_OUT))  	{ diff --git a/LUFA/Drivers/USB/Class/Host/Printer.h b/LUFA/Drivers/USB/Class/Host/Printer.h index 6d581dd29a..524547a472 100644 --- a/LUFA/Drivers/USB/Class/Host/Printer.h +++ b/LUFA/Drivers/USB/Class/Host/Printer.h @@ -173,7 +173,7 @@  			 *  \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.  			 */  			uint8_t PRNT_Host_SendString(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceInfo, -			                             void* PrinterCommands,  +			                             void* Buffer,   			                             const uint16_t Length) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);  			/** Determines the number of bytes received by the printer interface from the device, waiting to be read. This indicates the number diff --git a/LUFA/Drivers/USB/HighLevel/StdDescriptors.h b/LUFA/Drivers/USB/HighLevel/StdDescriptors.h index 94c7f291fe..89c2c97cb2 100644 --- a/LUFA/Drivers/USB/HighLevel/StdDescriptors.h +++ b/LUFA/Drivers/USB/HighLevel/StdDescriptors.h @@ -220,7 +220,7 @@               *  Type define for all descriptors' standard header, indicating the descriptor's length and type. This structure  			 *  uses LUFA-specific element names to make each element's purpose clearer.  			 * -			 *  \see \ref USB_StdDescriptor_Header_t for the version of this define with standard element names. +			 *  \see \ref USB_StdDescriptor_Header_t for the version of this type with standard element names.  			 */  			typedef struct  			{ @@ -235,7 +235,7 @@  			 *  Type define for all descriptors' standard header, indicating the descriptor's length and type. This structure  			 *  uses the relevant standard's given element names to ensure compatibility with the standard.  			 * -			 *  \see \ref USB_Descriptor_Header_t for the version of this define with non-standard LUFA specific element names. +			 *  \see \ref USB_Descriptor_Header_t for the version of this type with non-standard LUFA specific element names.  			 */  			typedef struct  			{ @@ -250,7 +250,7 @@  			 *  Type define for a standard Device Descriptor. This structure uses LUFA-specific element names to make each  			 *  element's purpose clearer.  			 * -			 *  \see \ref USB_StdDescriptor_Device_t for the version of this define with standard element names. +			 *  \see \ref USB_StdDescriptor_Device_t for the version of this type with standard element names.  			 */  			typedef struct  			{ @@ -299,7 +299,7 @@  			 *  Type define for a standard Device Descriptor. This structure uses the relevant standard's given element names  			 *  to ensure compatibility with the standard.  			 * -			 *  \see \ref USB_Descriptor_Device_t for the version of this define with non-standard LUFA specific element names. +			 *  \see \ref USB_Descriptor_Device_t for the version of this type with non-standard LUFA specific element names.  			 */  			typedef struct  			{ @@ -347,7 +347,7 @@  			 *  Type define for a standard Configuration Descriptor header. This structure uses LUFA-specific element names  			 *  to make each element's purpose clearer.  			 * -			 *  \see \ref USB_StdDescriptor_Configuration_Header_t for the version of this define with standard element names. +			 *  \see \ref USB_StdDescriptor_Configuration_Header_t for the version of this type with standard element names.  			 */  			typedef struct  			{ @@ -376,7 +376,7 @@  			 *  Type define for a standard Configuration Descriptor header. This structure uses the relevant standard's given element names  			 *  to ensure compatibility with the standard.  			 * -			 *  \see \ref USB_Descriptor_Device_t for the version of this define with non-standard LUFA specific element names. +			 *  \see \ref USB_Descriptor_Device_t for the version of this type with non-standard LUFA specific element names.  			 */  			typedef struct  			{ @@ -404,7 +404,7 @@  			 *  Type define for a standard Interface Descriptor. This structure uses LUFA-specific element names  			 *  to make each element's purpose clearer.  			 * -			 *  \see \ref USB_StdDescriptor_Interface_t for the version of this define with standard element names. +			 *  \see \ref USB_StdDescriptor_Interface_t for the version of this type with standard element names.  			 */  			typedef struct  			{ @@ -430,7 +430,7 @@  			 *  Type define for a standard Interface Descriptor. This structure uses the relevant standard's given element names  			 *  to ensure compatibility with the standard.  			 * -			 *  \see \ref USB_Descriptor_Interface_t for the version of this define with non-standard LUFA specific element names. +			 *  \see \ref USB_Descriptor_Interface_t for the version of this type with non-standard LUFA specific element names.  			 */  			typedef struct  			{ @@ -464,7 +464,7 @@  			 *  together at the point of enumeration, loading one generic driver for all the interfaces in the single  			 *  function. Read the ECN for more information.  			 * -			 *  \see \ref USB_StdDescriptor_Interface_Association_t for the version of this define with standard element names. +			 *  \see \ref USB_StdDescriptor_Interface_Association_t for the version of this type with standard element names.  			 */  			typedef struct  			{ @@ -493,7 +493,7 @@  			 *  together at the point of enumeration, loading one generic driver for all the interfaces in the single  			 *  function. Read the ECN for more information.  			 * -			 *  \see \ref USB_Descriptor_Interface_Association_t for the version of this define with non-standard LUFA specific +			 *  \see \ref USB_Descriptor_Interface_Association_t for the version of this type with non-standard LUFA specific  			 *       element names.  			 */  			typedef struct @@ -517,7 +517,7 @@  			 *  Type define for a standard Endpoint Descriptor. This structure uses LUFA-specific element names  			 *  to make each element's purpose clearer.  			 * -			 *  \see \ref USB_StdDescriptor_Endpoint_t for the version of this define with standard element names. +			 *  \see \ref USB_StdDescriptor_Endpoint_t for the version of this type with standard element names.  			 */  			typedef struct  			{ @@ -542,7 +542,7 @@  			 *  Type define for a standard Endpoint Descriptor. This structure uses the relevant standard's given  			 *  element names to ensure compatibility with the standard.  			 * -			 *  \see \ref USB_Descriptor_Endpoint_t for the version of this define with non-standard LUFA specific +			 *  \see \ref USB_Descriptor_Endpoint_t for the version of this type with non-standard LUFA specific  			 *       element names.  			 */  			typedef struct @@ -576,7 +576,7 @@  			 *  			 *  This structure uses LUFA-specific element names to make each element's purpose clearer.  			 * -			 *  \see \ref USB_StdDescriptor_String_t for the version of this define with standard element names. +			 *  \see \ref USB_StdDescriptor_String_t for the version of this type with standard element names.  			 */  			typedef struct  			{ @@ -606,7 +606,7 @@  			 *  			 *  This structure uses the relevant standard's given element names to ensure compatibility with the standard.  			 * -			 *  \see \ref USB_Descriptor_String_t for the version of this define with with non-standard LUFA specific +			 *  \see \ref USB_Descriptor_String_t for the version of this type with with non-standard LUFA specific  			 *       element names.  			 */  			typedef struct diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index c92a944643..e26f65865a 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -17,6 +17,7 @@    *  - Added new USB_Host_EnableSOFEvents(), USB_Host_DisableSOFEvents() and EVENT_USB_Host_StartOfFrame() for the user application    *    handling of USB Start of Frame events while in USB Host mode    *  - Added new PRNT_Host_BytesReceived() and PRNT_Host_ReceiveByte() functions to the Print Host Class driver +  *  - Added class specific descriptor type defines with standard USB-IF element naming    *    *  <b>Changed:</b>    *  - Removed complicated logic for the Endpoint_ConfigureEndpoint() function to use inlined or function called versions diff --git a/LUFA/ManPages/FutureChanges.txt b/LUFA/ManPages/FutureChanges.txt index d30d45d9af..485de4f7ca 100644 --- a/LUFA/ManPages/FutureChanges.txt +++ b/LUFA/ManPages/FutureChanges.txt @@ -15,7 +15,6 @@    *  - Code Features    *      -# Add hub support when in Host mode for multiple devices    *      -# Add ability to get number of bytes not written with pipe/endpoint write routines after an error -  *      -# Add standardized descriptor names to class driver structures    *      -# Change makefiles to allow for absolute LUFA location to be used    *      -# Re-add interrupt Pipe/Endpoint support    *  - Documentation/Support diff --git a/LUFA/ManPages/MigrationInformation.txt b/LUFA/ManPages/MigrationInformation.txt index ebeaaea6c0..54cb6ebb2c 100644 --- a/LUFA/ManPages/MigrationInformation.txt +++ b/LUFA/ManPages/MigrationInformation.txt @@ -22,10 +22,14 @@   *    - The signature for the CALLBACK_USB_GetDescriptor() callback has changed, the "void** const DescriptorAddress" parameter is   *      now "const void** const DescriptorAddress". Existing applications should update their callback signatures to match this, and   *      eliminate any casting of descriptor pointers to a non-const pointer. + *    - The names of the class specific descriptor type defines in the USB Class drivers have changed - refer to the driver documentation + *      for each class driver for the new class specific descriptor type names.   *   *  <b>Host Mode</b>   *    - The PRNT_Host_SendData() function has been renamed to \ref PRNT_Host_SendString(). Existing applications should simply   *      replace all references to the obsolete function name with the new function name. + *    - The names of the class specific descriptor type defines in the USB Class drivers have changed - refer to the driver documentation + *      for each class driver for the new class specific descriptor type names.   *   * \section Sec_Migration100807 Migrating from 100513 to 100807   * diff --git a/Projects/Incomplete/MIDIToneGenerator/Descriptors.c b/Projects/Incomplete/MIDIToneGenerator/Descriptors.c index fc3addb95e..34595419df 100644 --- a/Projects/Incomplete/MIDIToneGenerator/Descriptors.c +++ b/Projects/Incomplete/MIDIToneGenerator/Descriptors.c @@ -104,11 +104,11 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_ControlInterface_SPC =   		{ -			.Header                   = {.Size = sizeof(USB_Audio_Interface_AC_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Interface_AC_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_Header,  			.ACSpecification          = VERSION_BCD(01.00), -			.TotalLength              = sizeof(USB_Audio_Interface_AC_t), +			.TotalLength              = sizeof(USB_Audio_Descriptor_Interface_AC_t),  			.InCollection             = 1,  			.InterfaceNumbers         = {1}, @@ -132,7 +132,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.Audio_StreamInterface_SPC =   		{ -			.Header                   = {.Size = sizeof(USB_MIDI_AudioInterface_AS_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_AudioInterface_AS_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_General,  			.AudioSpecification       = VERSION_BCD(01.00), @@ -143,7 +143,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.MIDI_In_Jack_Emb =   		{ -			.Header                   = {.Size = sizeof(USB_MIDI_In_Jack_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_InputJack_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_InputJack,  			.JackType                 = MIDI_JACKTYPE_EMBEDDED, @@ -154,7 +154,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.MIDI_In_Jack_Ext =   		{ -			.Header                   = {.Size = sizeof(USB_MIDI_In_Jack_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_InputJack_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_InputJack,  			.JackType                 = MIDI_JACKTYPE_EXTERNAL, @@ -165,7 +165,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.MIDI_Out_Jack_Emb =   		{ -			.Header                   = {.Size = sizeof(USB_MIDI_Out_Jack_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_OutputJack_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_OutputJack,  			.JackType                 = MIDI_JACKTYPE_EMBEDDED, @@ -180,7 +180,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.MIDI_Out_Jack_Ext =   		{ -			.Header                   = {.Size = sizeof(USB_MIDI_Out_Jack_t), .Type = DTYPE_AudioInterface}, +			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_OutputJack_t), .Type = DTYPE_AudioInterface},  			.Subtype                  = DSUBTYPE_OutputJack,  			.JackType                 = MIDI_JACKTYPE_EXTERNAL, @@ -197,7 +197,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  		{  			.Endpoint =   				{ -					.Header              = {.Size = sizeof(USB_Audio_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint}, +					.Header              = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},  					.EndpointAddress     = (ENDPOINT_DESCRIPTOR_DIR_OUT | MIDI_STREAM_OUT_EPNUM),  					.Attributes          = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), @@ -211,7 +211,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.MIDI_In_Jack_Endpoint_SPC =   		{ -			.Header                   = {.Size = sizeof(USB_MIDI_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint}, +			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint},  			.Subtype                  = DSUBTYPE_General,  			.TotalEmbeddedJacks       = 0x01, @@ -222,7 +222,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  		{  			.Endpoint =   				{ -					.Header              = {.Size = sizeof(USB_Audio_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint}, +					.Header              = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},  					.EndpointAddress     = (ENDPOINT_DESCRIPTOR_DIR_IN | MIDI_STREAM_IN_EPNUM),  					.Attributes          = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), @@ -236,7 +236,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.MIDI_Out_Jack_Endpoint_SPC =   		{ -			.Header                   = {.Size = sizeof(USB_MIDI_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint}, +			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint},  			.Subtype                  = DSUBTYPE_General,  			.TotalEmbeddedJacks       = 0x01, diff --git a/Projects/Incomplete/MIDIToneGenerator/Descriptors.h b/Projects/Incomplete/MIDIToneGenerator/Descriptors.h index 8165fedf69..52ba98f060 100644 --- a/Projects/Incomplete/MIDIToneGenerator/Descriptors.h +++ b/Projects/Incomplete/MIDIToneGenerator/Descriptors.h @@ -59,19 +59,19 @@  		 */  		typedef struct  		{ -			USB_Descriptor_Configuration_Header_t Config; -			USB_Descriptor_Interface_t            Audio_ControlInterface; -			USB_Audio_Interface_AC_t              Audio_ControlInterface_SPC; -			USB_Descriptor_Interface_t            Audio_StreamInterface; -			USB_MIDI_AudioInterface_AS_t          Audio_StreamInterface_SPC; -			USB_MIDI_In_Jack_t                    MIDI_In_Jack_Emb; -			USB_MIDI_In_Jack_t                    MIDI_In_Jack_Ext; -			USB_MIDI_Out_Jack_t                   MIDI_Out_Jack_Emb; -			USB_MIDI_Out_Jack_t                   MIDI_Out_Jack_Ext; -			USB_Audio_StreamEndpoint_Std_t        MIDI_In_Jack_Endpoint; -			USB_MIDI_Jack_Endpoint_t              MIDI_In_Jack_Endpoint_SPC; -			USB_Audio_StreamEndpoint_Std_t        MIDI_Out_Jack_Endpoint; -			USB_MIDI_Jack_Endpoint_t              MIDI_Out_Jack_Endpoint_SPC; +			USB_Descriptor_Configuration_Header_t     Config; +			USB_Descriptor_Interface_t                Audio_ControlInterface; +			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC; +			USB_Descriptor_Interface_t                Audio_StreamInterface; +			USB_MIDI_Descriptor_AudioInterface_AS_t   Audio_StreamInterface_SPC; +			USB_MIDI_Descriptor_InputJack_t           MIDI_In_Jack_Emb; +			USB_MIDI_Descriptor_InputJack_t           MIDI_In_Jack_Ext; +			USB_MIDI_Descriptor_OutputJack_t          MIDI_Out_Jack_Emb; +			USB_MIDI_Descriptor_OutputJack_t          MIDI_Out_Jack_Ext; +			USB_Audio_Descriptor_StreamEndpoint_Std_t MIDI_In_Jack_Endpoint; +			USB_MIDI_Descriptor_Jack_Endpoint_t       MIDI_In_Jack_Endpoint_SPC; +			USB_Audio_Descriptor_StreamEndpoint_Std_t MIDI_Out_Jack_Endpoint; +			USB_MIDI_Descriptor_Jack_Endpoint_t       MIDI_Out_Jack_Endpoint_SPC;  		} USB_Descriptor_Configuration_t;  	/* Function Prototypes: */ diff --git a/Projects/Magstripe/Descriptors.c b/Projects/Magstripe/Descriptors.c index eb2b72b1e8..41c1c4bda4 100644 --- a/Projects/Magstripe/Descriptors.c +++ b/Projects/Magstripe/Descriptors.c @@ -138,7 +138,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.HID_KeyboardHID =   		{   -			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID}, +			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},  			.HIDSpec                = VERSION_BCD(01.11),  			.CountryCode            = 0x00, @@ -236,7 +236,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,  			break;  		case DTYPE_HID:  			Address = &ConfigurationDescriptor.HID_KeyboardHID; -			Size    = sizeof(USB_HID_Descriptor_t); +			Size    = sizeof(USB_HID_Descriptor_HID_t);  			break;  		case DTYPE_Report:  			Address = &KeyboardReport; diff --git a/Projects/Magstripe/Descriptors.h b/Projects/Magstripe/Descriptors.h index 850d6bc24e..7180bf3e7b 100644 --- a/Projects/Magstripe/Descriptors.h +++ b/Projects/Magstripe/Descriptors.h @@ -52,7 +52,7 @@  		{  			USB_Descriptor_Configuration_Header_t Config; /**< Configuration descriptor header structure */  			USB_Descriptor_Interface_t            HID_Interface; /**< Keyboard interface descriptor */ -			USB_HID_Descriptor_t                  HID_KeyboardHID; /**< Keyboard HID descriptor */ +			USB_HID_Descriptor_HID_t              HID_KeyboardHID; /**< Keyboard HID descriptor */  	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint; /**< Keyboard key report endpoint descriptor */  		} USB_Descriptor_Configuration_t; diff --git a/Projects/TempDataLogger/Descriptors.c b/Projects/TempDataLogger/Descriptors.c index d6e89603ce..1b8a4a2f92 100644 --- a/Projects/TempDataLogger/Descriptors.c +++ b/Projects/TempDataLogger/Descriptors.c @@ -178,7 +178,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =  	.HID_GenericHID =   		{ -			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID}, +			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},  			.HIDSpec                = VERSION_BCD(01.11),  			.CountryCode            = 0x00, @@ -277,7 +277,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,  			break;  		case DTYPE_HID:   			Address = &ConfigurationDescriptor.HID_GenericHID; -			Size    = sizeof(USB_HID_Descriptor_t); +			Size    = sizeof(USB_HID_Descriptor_HID_t);  			break;  		case DTYPE_Report:   			Address = &GenericReport; diff --git a/Projects/TempDataLogger/Descriptors.h b/Projects/TempDataLogger/Descriptors.h index 7f65cab338..a4916ace12 100644 --- a/Projects/TempDataLogger/Descriptors.h +++ b/Projects/TempDataLogger/Descriptors.h @@ -49,7 +49,7 @@  			USB_Descriptor_Endpoint_t             MS_DataInEndpoint;  			USB_Descriptor_Endpoint_t             MS_DataOutEndpoint;  			USB_Descriptor_Interface_t            HID_Interface; -			USB_HID_Descriptor_t                  HID_GenericHID; +			USB_HID_Descriptor_HID_t              HID_GenericHID;  			USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;  		} USB_Descriptor_Configuration_t; | 
