From 04660d3793292fad5a09bd50ae9615e53ca4aa10 Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Fri, 1 Jul 2011 05:26:25 +0000
Subject: [PATCH] Seperate out the device demos and project's configuration
 descriptor structure definitions to clearly indicate what descriptors belong
 to which interface.

---
 Bootloaders/CDC/Descriptors.h                 |  4 ++++
 Bootloaders/DFU/Descriptors.h                 |  2 ++
 Bootloaders/HID/Descriptors.h                 |  2 ++
 .../ClassDriver/AudioInput/Descriptors.h      |  4 ++++
 .../ClassDriver/AudioOutput/Descriptors.h     |  4 ++++
 .../DualVirtualSerial/Descriptors.h           |  8 +++++++
 .../ClassDriver/GenericHID/Descriptors.h      |  2 ++
 .../Device/ClassDriver/Joystick/Descriptors.h |  2 ++
 .../Device/ClassDriver/Keyboard/Descriptors.h |  2 ++
 .../ClassDriver/KeyboardMouse/Descriptors.h   |  4 ++++
 .../KeyboardMouseMultiReport/Descriptors.h    |  2 ++
 Demos/Device/ClassDriver/MIDI/Descriptors.h   |  4 ++++
 .../ClassDriver/MassStorage/Descriptors.h     |  2 ++
 .../MassStorageKeyboard/Descriptors.h         |  4 ++++
 Demos/Device/ClassDriver/Mouse/Descriptors.h  |  2 ++
 .../ClassDriver/RNDISEthernet/Descriptors.h   |  4 ++++
 .../ClassDriver/VirtualSerial/Descriptors.h   |  4 ++++
 .../VirtualSerialMassStorage/Descriptors.h    |  6 +++++
 .../VirtualSerialMouse/Descriptors.h          |  6 +++++
 .../Device/Incomplete/Sideshow/Descriptors.h  |  2 ++
 .../TestAndMeasurement/Descriptors.c          |  8 +++----
 .../TestAndMeasurement/Descriptors.h          | 10 +++++----
 .../Device/LowLevel/AudioInput/Descriptors.h  |  4 ++++
 .../Device/LowLevel/AudioOutput/Descriptors.h |  4 ++++
 .../LowLevel/DualVirtualSerial/Descriptors.h  |  8 +++++++
 .../Device/LowLevel/GenericHID/Descriptors.h  |  2 ++
 Demos/Device/LowLevel/Joystick/Descriptors.h  |  2 ++
 Demos/Device/LowLevel/Keyboard/Descriptors.h  |  2 ++
 .../LowLevel/KeyboardMouse/Descriptors.h      |  9 +++++---
 Demos/Device/LowLevel/MIDI/Descriptors.h      |  4 ++++
 .../Device/LowLevel/MassStorage/Descriptors.h |  2 ++
 Demos/Device/LowLevel/Mouse/Descriptors.h     |  2 ++
 .../LowLevel/RNDISEthernet/Descriptors.h      | 22 +++++++++++--------
 .../LowLevel/VirtualSerial/Descriptors.h      |  4 ++++
 .../ClassDriver/MouseHostDevice/Descriptors.h |  2 ++
 LUFA/ManPages/LUFAPoweredProjects.txt         |  2 ++
 Projects/AVRISP-MKII/Descriptors.h            |  2 ++
 Projects/Benito/Descriptors.h                 |  4 ++++
 .../StandaloneProgrammer/Descriptors.h        |  2 ++
 Projects/LEDNotifier/Descriptors.h            |  4 ++++
 Projects/MIDIToneGenerator/Descriptors.h      |  4 ++++
 Projects/Magstripe/Descriptors.h              |  2 ++
 Projects/MediaController/Descriptors.h        |  2 ++
 Projects/RelayBoard/Descriptors.h             |  2 ++
 Projects/TempDataLogger/Descriptors.h         |  4 ++++
 Projects/USBtoSerial/Descriptors.h            |  4 ++++
 Projects/Webserver/Descriptors.h              |  6 +++++
 Projects/XPLAINBridge/AVRISPDescriptors.h     |  2 ++
 Projects/XPLAINBridge/USARTDescriptors.h      |  4 ++++
 49 files changed, 179 insertions(+), 20 deletions(-)

diff --git a/Bootloaders/CDC/Descriptors.h b/Bootloaders/CDC/Descriptors.h
index 9c6eb04c9..adcac4437 100644
--- a/Bootloaders/CDC/Descriptors.h
+++ b/Bootloaders/CDC/Descriptors.h
@@ -149,11 +149,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+			
+			// CDC Control Interface
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_Descriptor_CDC_FunctionalHeader_t    CDC_Functional_Header;
 			USB_Descriptor_CDC_FunctionalACM_t       CDC_Functional_ACM;
 			USB_Descriptor_CDC_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+			
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
diff --git a/Bootloaders/DFU/Descriptors.h b/Bootloaders/DFU/Descriptors.h
index 9bc4db520..445557f70 100644
--- a/Bootloaders/DFU/Descriptors.h
+++ b/Bootloaders/DFU/Descriptors.h
@@ -161,6 +161,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// DFU Interface
 			USB_Descriptor_Interface_t            DFU_Interface;
 			USB_Descriptor_DFU_Functional_t       DFU_Functional;
 		} USB_Descriptor_Configuration_t;
diff --git a/Bootloaders/HID/Descriptors.h b/Bootloaders/HID/Descriptors.h
index 2c2969ed9..b2fd88e71 100644
--- a/Bootloaders/HID/Descriptors.h
+++ b/Bootloaders/HID/Descriptors.h
@@ -47,6 +47,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// Generic HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_VendorHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/AudioInput/Descriptors.h b/Demos/Device/ClassDriver/AudioInput/Descriptors.h
index 05d1fee36..aa551b00c 100644
--- a/Demos/Device/ClassDriver/AudioInput/Descriptors.h
+++ b/Demos/Device/ClassDriver/AudioInput/Descriptors.h
@@ -59,10 +59,14 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t     Config;
+
+			// Audio Control Interface
 			USB_Descriptor_Interface_t                Audio_ControlInterface;
 			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
 			USB_Audio_Descriptor_InputTerminal_t      Audio_InputTerminal;
 			USB_Audio_Descriptor_OutputTerminal_t     Audio_OutputTerminal;
+
+			// Audio Streaming Interface
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt0;
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt1;
 			USB_Audio_Descriptor_Interface_AS_t       Audio_StreamInterface_SPC;
diff --git a/Demos/Device/ClassDriver/AudioOutput/Descriptors.h b/Demos/Device/ClassDriver/AudioOutput/Descriptors.h
index ca5c87386..da95077c4 100644
--- a/Demos/Device/ClassDriver/AudioOutput/Descriptors.h
+++ b/Demos/Device/ClassDriver/AudioOutput/Descriptors.h
@@ -59,10 +59,14 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t     Config;
+
+			// Audio Control Interface
 			USB_Descriptor_Interface_t                Audio_ControlInterface;
 			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
 			USB_Audio_Descriptor_InputTerminal_t      Audio_InputTerminal;
 			USB_Audio_Descriptor_OutputTerminal_t     Audio_OutputTerminal;
+
+			// Audio Streaming Interface
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt0;
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt1;
 			USB_Audio_Descriptor_Interface_AS_t       Audio_StreamInterface_SPC;
diff --git a/Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.h b/Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.h
index aa86b0e68..4affeafe1 100644
--- a/Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.h
+++ b/Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.h
@@ -74,21 +74,29 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+
+			// First CDC Control Interface
 			USB_Descriptor_Interface_Association_t   CDC1_IAD;
 			USB_Descriptor_Interface_t               CDC1_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC1_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC1_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC1_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC1_ManagementEndpoint;
+
+			// First CDC Data Interface
 			USB_Descriptor_Interface_t               CDC1_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC1_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC1_DataInEndpoint;
+
+			// Second CDC Control Interface
 			USB_Descriptor_Interface_Association_t   CDC2_IAD;
 			USB_Descriptor_Interface_t               CDC2_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC2_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC2_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC2_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC2_ManagementEndpoint;
+
+			// Second CDC Data Interface
 			USB_Descriptor_Interface_t               CDC2_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC2_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC2_DataInEndpoint;
diff --git a/Demos/Device/ClassDriver/GenericHID/Descriptors.h b/Demos/Device/ClassDriver/GenericHID/Descriptors.h
index 0a007f336..e9a2d8363 100644
--- a/Demos/Device/ClassDriver/GenericHID/Descriptors.h
+++ b/Demos/Device/ClassDriver/GenericHID/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Generic HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_GenericHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/Joystick/Descriptors.h b/Demos/Device/ClassDriver/Joystick/Descriptors.h
index e1967e633..cca19b081 100644
--- a/Demos/Device/ClassDriver/Joystick/Descriptors.h
+++ b/Demos/Device/ClassDriver/Joystick/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Joystick HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_JoystickHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/Keyboard/Descriptors.h b/Demos/Device/ClassDriver/Keyboard/Descriptors.h
index 63d47f8d9..538a9d14f 100644
--- a/Demos/Device/ClassDriver/Keyboard/Descriptors.h
+++ b/Demos/Device/ClassDriver/Keyboard/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Keyboard HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_KeyboardHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h
index 0550e69af..8dc2eb8cb 100644
--- a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h
+++ b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h
@@ -49,9 +49,13 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Keyboard HID Interface
 			USB_Descriptor_Interface_t            HID1_KeyboardInterface;
 			USB_HID_Descriptor_HID_t              HID1_KeyboardHID;
 			USB_Descriptor_Endpoint_t             HID1_ReportINEndpoint;
+
+			// Mouse HID Interface
 			USB_Descriptor_Interface_t            HID2_MouseInterface;
 			USB_HID_Descriptor_HID_t              HID2_MouseHID;
 			USB_Descriptor_Endpoint_t             HID2_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.h b/Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.h
index 153fe4df2..1c5062f0e 100644
--- a/Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.h
+++ b/Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Combined Keyboard/Mouse HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_HIDData;
 			USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/MIDI/Descriptors.h b/Demos/Device/ClassDriver/MIDI/Descriptors.h
index a1ded45a1..97c257fd6 100644
--- a/Demos/Device/ClassDriver/MIDI/Descriptors.h
+++ b/Demos/Device/ClassDriver/MIDI/Descriptors.h
@@ -59,8 +59,12 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t     Config;
+
+			// MIDI Audio Control Interface
 			USB_Descriptor_Interface_t                Audio_ControlInterface;
 			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
+
+			// MIDI Audio Streaming Interface
 			USB_Descriptor_Interface_t                Audio_StreamInterface;
 			USB_MIDI_Descriptor_AudioInterface_AS_t   Audio_StreamInterface_SPC;
 			USB_MIDI_Descriptor_InputJack_t           MIDI_In_Jack_Emb;
diff --git a/Demos/Device/ClassDriver/MassStorage/Descriptors.h b/Demos/Device/ClassDriver/MassStorage/Descriptors.h
index 38cb23131..34605116e 100644
--- a/Demos/Device/ClassDriver/MassStorage/Descriptors.h
+++ b/Demos/Device/ClassDriver/MassStorage/Descriptors.h
@@ -59,6 +59,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Mass Storage Interface
 			USB_Descriptor_Interface_t            MS_Interface;
 			USB_Descriptor_Endpoint_t             MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t             MS_DataOutEndpoint;
diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h
index d7d1bc9e1..67a906764 100644
--- a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h
+++ b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h
@@ -66,9 +66,13 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Mass Storage Interface
 			USB_Descriptor_Interface_t            MS_Interface;
 			USB_Descriptor_Endpoint_t             MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t             MS_DataOutEndpoint;
+
+			// Generic HID Interface
 			USB_Descriptor_Interface_t            HID_KeyboardInterface;
 			USB_HID_Descriptor_HID_t              HID_KeyboardHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/Mouse/Descriptors.h b/Demos/Device/ClassDriver/Mouse/Descriptors.h
index 8ea34e014..60fd74084 100644
--- a/Demos/Device/ClassDriver/Mouse/Descriptors.h
+++ b/Demos/Device/ClassDriver/Mouse/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Mouse HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_MouseHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h b/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h
index 46c3e2699..f74cf990d 100644
--- a/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h
+++ b/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h
@@ -65,11 +65,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// RNDIS CDC Control Interface
 			USB_Descriptor_Interface_t            CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t    CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t  CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t             CDC_NotificationEndpoint;
+
+			// RNDIS CDC Data Interface
 			USB_Descriptor_Interface_t            CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t             RNDIS_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t             RNDIS_DataInEndpoint;
diff --git a/Demos/Device/ClassDriver/VirtualSerial/Descriptors.h b/Demos/Device/ClassDriver/VirtualSerial/Descriptors.h
index 6e2dd7804..f77e34d6e 100644
--- a/Demos/Device/ClassDriver/VirtualSerial/Descriptors.h
+++ b/Demos/Device/ClassDriver/VirtualSerial/Descriptors.h
@@ -65,11 +65,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+
+			// CDC Control Interface
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
diff --git a/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h b/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h
index f5970a492..3beea74b9 100644
--- a/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h
+++ b/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h
@@ -74,15 +74,21 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+
+			// CDC Control Interface
 			USB_Descriptor_Interface_Association_t   CDC_IAD;
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
+
+			// Mass Storage Interface
 			USB_Descriptor_Interface_t               MS_Interface;
 			USB_Descriptor_Endpoint_t                MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t                MS_DataOutEndpoint;
diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h
index 028695a77..68d5c3495 100644
--- a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h
+++ b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h
@@ -71,15 +71,21 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+
+			// CDC Control Interface
 			USB_Descriptor_Interface_Association_t   CDC_IAD;
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
+
+			// Mouse HID Interface
 			USB_Descriptor_Interface_t               HID_Interface;
 			USB_HID_Descriptor_HID_t                 HID_MouseHID;
 	        USB_Descriptor_Endpoint_t                HID_ReportINEndpoint;
diff --git a/Demos/Device/Incomplete/Sideshow/Descriptors.h b/Demos/Device/Incomplete/Sideshow/Descriptors.h
index 9ea38b076..e24d37e0e 100644
--- a/Demos/Device/Incomplete/Sideshow/Descriptors.h
+++ b/Demos/Device/Incomplete/Sideshow/Descriptors.h
@@ -47,6 +47,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// SideShow Interface
 			USB_Descriptor_Interface_t            SSHOW_Interface;
 			USB_Descriptor_Endpoint_t             SSHOW_DataInEndpoint;
 			USB_Descriptor_Endpoint_t             SSHOW_DataOutEndpoint;
diff --git a/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.c b/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.c
index 8cc6138f1..4beacb2b1 100644
--- a/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.c
+++ b/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.c
@@ -99,7 +99,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 			.MaxPowerConsumption    = USB_CONFIG_POWER_MA(100)
 		},
 
-	.Interface =
+	.TM_Interface =
 		{
 			.Header                 = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
 
@@ -115,7 +115,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 			.InterfaceStrIndex      = NO_DESCRIPTOR
 		},
 
-	.DataOutEndpoint =
+	.TM_DataOutEndpoint =
 		{
 			.Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
 
@@ -125,7 +125,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 			.PollingIntervalMS      = 0x01
 		},
 
-	.DataInEndpoint =
+	.TM_DataInEndpoint =
 		{
 			.Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
 
@@ -135,7 +135,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 			.PollingIntervalMS      = 0x01
 		},
 
-	.NotificationEndpoint =
+	.TM_NotificationEndpoint =
 		{
 			.Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
 
diff --git a/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.h b/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.h
index 5ae6e4d1d..7b4fb0b35 100644
--- a/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.h
+++ b/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.h
@@ -66,10 +66,12 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
-			USB_Descriptor_Interface_t            Interface;
-			USB_Descriptor_Endpoint_t             DataOutEndpoint;
-			USB_Descriptor_Endpoint_t             DataInEndpoint;
-			USB_Descriptor_Endpoint_t             NotificationEndpoint;
+			
+			// Test and Measurement Interface
+			USB_Descriptor_Interface_t            TM_Interface;
+			USB_Descriptor_Endpoint_t             TM_DataOutEndpoint;
+			USB_Descriptor_Endpoint_t             TM_DataInEndpoint;
+			USB_Descriptor_Endpoint_t             TM_NotificationEndpoint;
 		} USB_Descriptor_Configuration_t;
 
 	/* Function Prototypes: */
diff --git a/Demos/Device/LowLevel/AudioInput/Descriptors.h b/Demos/Device/LowLevel/AudioInput/Descriptors.h
index 05d1fee36..aa551b00c 100644
--- a/Demos/Device/LowLevel/AudioInput/Descriptors.h
+++ b/Demos/Device/LowLevel/AudioInput/Descriptors.h
@@ -59,10 +59,14 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t     Config;
+
+			// Audio Control Interface
 			USB_Descriptor_Interface_t                Audio_ControlInterface;
 			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
 			USB_Audio_Descriptor_InputTerminal_t      Audio_InputTerminal;
 			USB_Audio_Descriptor_OutputTerminal_t     Audio_OutputTerminal;
+
+			// Audio Streaming Interface
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt0;
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt1;
 			USB_Audio_Descriptor_Interface_AS_t       Audio_StreamInterface_SPC;
diff --git a/Demos/Device/LowLevel/AudioOutput/Descriptors.h b/Demos/Device/LowLevel/AudioOutput/Descriptors.h
index ca5c87386..da95077c4 100644
--- a/Demos/Device/LowLevel/AudioOutput/Descriptors.h
+++ b/Demos/Device/LowLevel/AudioOutput/Descriptors.h
@@ -59,10 +59,14 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t     Config;
+
+			// Audio Control Interface
 			USB_Descriptor_Interface_t                Audio_ControlInterface;
 			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
 			USB_Audio_Descriptor_InputTerminal_t      Audio_InputTerminal;
 			USB_Audio_Descriptor_OutputTerminal_t     Audio_OutputTerminal;
+
+			// Audio Streaming Interface
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt0;
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt1;
 			USB_Audio_Descriptor_Interface_AS_t       Audio_StreamInterface_SPC;
diff --git a/Demos/Device/LowLevel/DualVirtualSerial/Descriptors.h b/Demos/Device/LowLevel/DualVirtualSerial/Descriptors.h
index 6bceb42e2..a007baab6 100644
--- a/Demos/Device/LowLevel/DualVirtualSerial/Descriptors.h
+++ b/Demos/Device/LowLevel/DualVirtualSerial/Descriptors.h
@@ -74,21 +74,29 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+
+			// First CDC Control Interface
 			USB_Descriptor_Interface_Association_t   CDC1_IAD;
 			USB_Descriptor_Interface_t               CDC1_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC1_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC1_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC1_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC1_ManagementEndpoint;
+
+			// First CDC Data Interface
 			USB_Descriptor_Interface_t               CDC1_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC1_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC1_DataInEndpoint;
+
+			// Second CDC Control Interface
 			USB_Descriptor_Interface_Association_t   CDC2_IAD;
 			USB_Descriptor_Interface_t               CDC2_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC2_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC2_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC2_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC2_ManagementEndpoint;
+
+			// Second CDC Data Interface
 			USB_Descriptor_Interface_t               CDC2_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC2_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC2_DataInEndpoint;
diff --git a/Demos/Device/LowLevel/GenericHID/Descriptors.h b/Demos/Device/LowLevel/GenericHID/Descriptors.h
index 4e1a0c11e..3ba9f1068 100644
--- a/Demos/Device/LowLevel/GenericHID/Descriptors.h
+++ b/Demos/Device/LowLevel/GenericHID/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Generic HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_GenericHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/LowLevel/Joystick/Descriptors.h b/Demos/Device/LowLevel/Joystick/Descriptors.h
index 459c5a9e0..2cbf769a4 100644
--- a/Demos/Device/LowLevel/Joystick/Descriptors.h
+++ b/Demos/Device/LowLevel/Joystick/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Joystick HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_JoystickHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/LowLevel/Keyboard/Descriptors.h b/Demos/Device/LowLevel/Keyboard/Descriptors.h
index ee0db42c6..9672395a0 100644
--- a/Demos/Device/LowLevel/Keyboard/Descriptors.h
+++ b/Demos/Device/LowLevel/Keyboard/Descriptors.h
@@ -50,6 +50,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Keyboard HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_KeyboardHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/LowLevel/KeyboardMouse/Descriptors.h b/Demos/Device/LowLevel/KeyboardMouse/Descriptors.h
index 03606cf9b..f04b221ce 100644
--- a/Demos/Device/LowLevel/KeyboardMouse/Descriptors.h
+++ b/Demos/Device/LowLevel/KeyboardMouse/Descriptors.h
@@ -50,13 +50,16 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Keyboard HID Interface
 			USB_Descriptor_Interface_t            HID1_KeyboardInterface;
 			USB_HID_Descriptor_HID_t              HID1_KeyboardHID;
-	        USB_Descriptor_Endpoint_t             HID1_ReportINEndpoint;
-	        USB_Descriptor_Endpoint_t             HID1_ReportOUTEndpoint;
+			USB_Descriptor_Endpoint_t             HID1_ReportINEndpoint;
+
+			// Mouse HID Interface
 			USB_Descriptor_Interface_t            HID2_MouseInterface;
 			USB_HID_Descriptor_HID_t              HID2_MouseHID;
-	        USB_Descriptor_Endpoint_t             HID2_ReportINEndpoint;
+			USB_Descriptor_Endpoint_t             HID2_ReportINEndpoint;
 		} USB_Descriptor_Configuration_t;
 
 	/* Macros: */
diff --git a/Demos/Device/LowLevel/MIDI/Descriptors.h b/Demos/Device/LowLevel/MIDI/Descriptors.h
index 792695511..fe6039ec2 100644
--- a/Demos/Device/LowLevel/MIDI/Descriptors.h
+++ b/Demos/Device/LowLevel/MIDI/Descriptors.h
@@ -59,8 +59,12 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t     Config;
+
+			// MIDI Audio Control Interface
 			USB_Descriptor_Interface_t                Audio_ControlInterface;
 			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
+
+			// MIDI Audio Streaming Interface
 			USB_Descriptor_Interface_t                Audio_StreamInterface;
 			USB_MIDI_Descriptor_AudioInterface_AS_t   Audio_StreamInterface_SPC;
 			USB_MIDI_Descriptor_InputJack_t           MIDI_In_Jack_Emb;
diff --git a/Demos/Device/LowLevel/MassStorage/Descriptors.h b/Demos/Device/LowLevel/MassStorage/Descriptors.h
index 7c4a38360..043d65994 100644
--- a/Demos/Device/LowLevel/MassStorage/Descriptors.h
+++ b/Demos/Device/LowLevel/MassStorage/Descriptors.h
@@ -59,6 +59,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// Mass Storage Interface
 			USB_Descriptor_Interface_t            MS_Interface;
 			USB_Descriptor_Endpoint_t             MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t             MS_DataOutEndpoint;
diff --git a/Demos/Device/LowLevel/Mouse/Descriptors.h b/Demos/Device/LowLevel/Mouse/Descriptors.h
index 8ea34e014..f88f530b2 100644
--- a/Demos/Device/LowLevel/Mouse/Descriptors.h
+++ b/Demos/Device/LowLevel/Mouse/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// Mouse HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_MouseHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/LowLevel/RNDISEthernet/Descriptors.h b/Demos/Device/LowLevel/RNDISEthernet/Descriptors.h
index f59f52357..f439b5116 100644
--- a/Demos/Device/LowLevel/RNDISEthernet/Descriptors.h
+++ b/Demos/Device/LowLevel/RNDISEthernet/Descriptors.h
@@ -64,15 +64,19 @@
 		 */
 		typedef struct
 		{
-			USB_Descriptor_Configuration_Header_t    Config;
-			USB_Descriptor_Interface_t               CDC_CCI_Interface;
-			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
-			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
-			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
-			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
-			USB_Descriptor_Interface_t               CDC_DCI_Interface;
-			USB_Descriptor_Endpoint_t                RNDIS_DataOutEndpoint;
-			USB_Descriptor_Endpoint_t                RNDIS_DataInEndpoint;
+			USB_Descriptor_Configuration_Header_t Config;
+
+			// RNDIS CDC Control Interface
+			USB_Descriptor_Interface_t            CDC_CCI_Interface;
+			USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;
+			USB_CDC_Descriptor_FunctionalACM_t    CDC_Functional_ACM;
+			USB_CDC_Descriptor_FunctionalUnion_t  CDC_Functional_Union;
+			USB_Descriptor_Endpoint_t             CDC_NotificationEndpoint;
+
+			// RNDIS CDC Data Interface
+			USB_Descriptor_Interface_t            CDC_DCI_Interface;
+			USB_Descriptor_Endpoint_t             RNDIS_DataOutEndpoint;
+			USB_Descriptor_Endpoint_t             RNDIS_DataInEndpoint;
 		} USB_Descriptor_Configuration_t;
 
 	/* Function Prototypes: */
diff --git a/Demos/Device/LowLevel/VirtualSerial/Descriptors.h b/Demos/Device/LowLevel/VirtualSerial/Descriptors.h
index 9f4bf4b42..2ab33e923 100644
--- a/Demos/Device/LowLevel/VirtualSerial/Descriptors.h
+++ b/Demos/Device/LowLevel/VirtualSerial/Descriptors.h
@@ -65,11 +65,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+
+			// CDC Control Interface
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
diff --git a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h
index 8ea34e014..f88f530b2 100644
--- a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h
+++ b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// Mouse HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_MouseHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/LUFA/ManPages/LUFAPoweredProjects.txt b/LUFA/ManPages/LUFAPoweredProjects.txt
index 33c4c80cd..bb2184232 100644
--- a/LUFA/ManPages/LUFAPoweredProjects.txt
+++ b/LUFA/ManPages/LUFAPoweredProjects.txt
@@ -80,6 +80,7 @@
  *  - Programmable XBOX controller: http://richard-burke.dyndns.org/wordpress/pan-galactic-gargantuan-gargle-brain-aka-xbox-360-usb-controller/
  *  - Reprap with LUFA, a LUFA powered 3D printer: http://code.google.com/p/at90usb1287-code-for-arduino-and-eclipse/
  *  - SD Card reader: http://elasticsheep.com/2010/04/teensy2-usb-mass-storage-with-an-sd-card/
+ *  - SDR1, a Software Defined Radio firmware: https://code.google.com/p/sdr-mk1/
  *  - SEGA Megadrive/Genesis Development Cartridge: http://www.makestuff.eu/wordpress/?page_id=398
  *  - Serial Line bus analyser: http://www.pjrc.com/teensy/projects/SerialAnalyzer.html
  *  - SmartportVHD Apple II Mass Storage adapter: http://pcedric3.free.fr/SmartportVHD/
@@ -108,6 +109,7 @@
  *  - Penguino, an Arduino Board With On-Board LUFA Powered Debugger/Programmer: http://wiki.icy.com.au/PenguinoAVR
  *  - PIR-1, an IR control interface for consumer electronics: http://www.promixis.com/pir-1.php
  *  - PIR-4, a USB Connected 4 port IR transmitter: http://promixis.com/pir-4.php
+ *  - KeyGlove, an alternative input system: http://www.keyglove.net/
  *  - Many of Busware's Products: http://www.busware.de/
  *  - MIDIFighter, a USB-MIDI controller: http://www.midifighter.com/
  *  - Retrode, a USB Games Console Cartridge Reader: http://www.retrode.org
diff --git a/Projects/AVRISP-MKII/Descriptors.h b/Projects/AVRISP-MKII/Descriptors.h
index ca68fd518..786e487bd 100644
--- a/Projects/AVRISP-MKII/Descriptors.h
+++ b/Projects/AVRISP-MKII/Descriptors.h
@@ -67,6 +67,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+			
+			// Atmel AVRISP-MKII Interface
 			USB_Descriptor_Interface_t               AVRISP_Interface;
 			USB_Descriptor_Endpoint_t                AVRISP_DataInEndpoint;
 			USB_Descriptor_Endpoint_t                AVRISP_DataOutEndpoint;
diff --git a/Projects/Benito/Descriptors.h b/Projects/Benito/Descriptors.h
index 6e2dd7804..fba6e031c 100644
--- a/Projects/Benito/Descriptors.h
+++ b/Projects/Benito/Descriptors.h
@@ -65,11 +65,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+
+			// CDC Command Interface
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
diff --git a/Projects/Incomplete/StandaloneProgrammer/Descriptors.h b/Projects/Incomplete/StandaloneProgrammer/Descriptors.h
index dac92cd2d..0ebc36754 100644
--- a/Projects/Incomplete/StandaloneProgrammer/Descriptors.h
+++ b/Projects/Incomplete/StandaloneProgrammer/Descriptors.h
@@ -74,6 +74,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+			
+			// Mass Storage Interface
 			USB_Descriptor_Interface_t               MS_Interface;
 			USB_Descriptor_Endpoint_t                MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t                MS_DataOutEndpoint;
diff --git a/Projects/LEDNotifier/Descriptors.h b/Projects/LEDNotifier/Descriptors.h
index 6e2dd7804..5ce8f34fa 100644
--- a/Projects/LEDNotifier/Descriptors.h
+++ b/Projects/LEDNotifier/Descriptors.h
@@ -65,11 +65,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+			
+			// CDC Command Interface
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+			
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
diff --git a/Projects/MIDIToneGenerator/Descriptors.h b/Projects/MIDIToneGenerator/Descriptors.h
index 2b5e7c59c..4f0eccab7 100644
--- a/Projects/MIDIToneGenerator/Descriptors.h
+++ b/Projects/MIDIToneGenerator/Descriptors.h
@@ -59,8 +59,12 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t     Config;
+
+			// MIDI Audio Control Interface
 			USB_Descriptor_Interface_t                Audio_ControlInterface;
 			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
+
+			// MIDI Audio Streaming Interface
 			USB_Descriptor_Interface_t                Audio_StreamInterface;
 			USB_MIDI_Descriptor_AudioInterface_AS_t   Audio_StreamInterface_SPC;
 			USB_MIDI_Descriptor_InputJack_t           MIDI_In_Jack_Emb;
diff --git a/Projects/Magstripe/Descriptors.h b/Projects/Magstripe/Descriptors.h
index 17e6aab77..9a71ada96 100644
--- a/Projects/Magstripe/Descriptors.h
+++ b/Projects/Magstripe/Descriptors.h
@@ -50,6 +50,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config; /**< Configuration descriptor header structure */
+			
+			// Keyboard HID Interface
 			USB_Descriptor_Interface_t            HID_Interface; /**< Keyboard interface descriptor */
 			USB_HID_Descriptor_HID_t              HID_KeyboardHID; /**< Keyboard HID descriptor */
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint; /**< Keyboard key report endpoint descriptor */
diff --git a/Projects/MediaController/Descriptors.h b/Projects/MediaController/Descriptors.h
index d3d393c9f..74331c27f 100644
--- a/Projects/MediaController/Descriptors.h
+++ b/Projects/MediaController/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// Media Controller HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_MediaControlHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Projects/RelayBoard/Descriptors.h b/Projects/RelayBoard/Descriptors.h
index d913eb722..ac8a8e0aa 100644
--- a/Projects/RelayBoard/Descriptors.h
+++ b/Projects/RelayBoard/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// Relay Board Interface
 			USB_Descriptor_Interface_t            RelayBoardInterface;
 		} USB_Descriptor_Configuration_t;
 
diff --git a/Projects/TempDataLogger/Descriptors.h b/Projects/TempDataLogger/Descriptors.h
index 283e44737..0ba6204ec 100644
--- a/Projects/TempDataLogger/Descriptors.h
+++ b/Projects/TempDataLogger/Descriptors.h
@@ -43,9 +43,13 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// Mass Storage Interface
 			USB_Descriptor_Interface_t            MS_Interface;
 			USB_Descriptor_Endpoint_t             MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t             MS_DataOutEndpoint;
+			
+			// Settings Management Generic HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_GenericHID;
 			USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Projects/USBtoSerial/Descriptors.h b/Projects/USBtoSerial/Descriptors.h
index 6e2dd7804..5ce8f34fa 100644
--- a/Projects/USBtoSerial/Descriptors.h
+++ b/Projects/USBtoSerial/Descriptors.h
@@ -65,11 +65,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+			
+			// CDC Command Interface
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+			
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
diff --git a/Projects/Webserver/Descriptors.h b/Projects/Webserver/Descriptors.h
index e285dfba5..da8456e93 100644
--- a/Projects/Webserver/Descriptors.h
+++ b/Projects/Webserver/Descriptors.h
@@ -74,15 +74,21 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t  Config;
+			
+			// RNDIS CDC Command Interface
 			USB_Descriptor_Interface_Association_t CDC_IAD;
 			USB_Descriptor_Interface_t             CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t  CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t     CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t   CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t              CDC_NotificationEndpoint;
+			
+			// RNDIS CDC Data Interface
 			USB_Descriptor_Interface_t             CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t              RNDIS_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t              RNDIS_DataInEndpoint;
+			
+			// Mass Storage Interface
 			USB_Descriptor_Interface_t             MS_Interface;
 			USB_Descriptor_Endpoint_t              MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t              MS_DataOutEndpoint;
diff --git a/Projects/XPLAINBridge/AVRISPDescriptors.h b/Projects/XPLAINBridge/AVRISPDescriptors.h
index 2b6f3f41d..e98ea24dc 100644
--- a/Projects/XPLAINBridge/AVRISPDescriptors.h
+++ b/Projects/XPLAINBridge/AVRISPDescriptors.h
@@ -67,6 +67,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+			
+			// Atmel AVRISP-MKII Interface
 			USB_Descriptor_Interface_t               AVRISP_Interface;
 			USB_Descriptor_Endpoint_t                AVRISP_DataInEndpoint;
 			USB_Descriptor_Endpoint_t                AVRISP_DataOutEndpoint;
diff --git a/Projects/XPLAINBridge/USARTDescriptors.h b/Projects/XPLAINBridge/USARTDescriptors.h
index 7356e1f3e..f504011eb 100644
--- a/Projects/XPLAINBridge/USARTDescriptors.h
+++ b/Projects/XPLAINBridge/USARTDescriptors.h
@@ -65,11 +65,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+			
+			// CDC Control Interface
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+			
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
-- 
GitLab