forked from mfulz_github/qmk_firmware
		
	Replace CDC interface numbers with enums.
This commit is contained in:
		
							parent
							
								
									ab238601b9
								
							
						
					
					
						commit
						352152c664
					
				| @ -123,8 +123,8 @@ const USB_Descriptor_Configuration_t ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = 0x06, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 0, | ||||
| 			.SlaveInterfaceNumber   = 1, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC_NotificationEndpoint = | ||||
|  | ||||
| @ -48,12 +48,12 @@ const USB_Descriptor_HIDReport_Datatype_t HIDReport[] = | ||||
| 	HID_RI_USAGE_PAGE(16, 0xFFDC), /* Vendor Page 0xDC */ | ||||
| 	HID_RI_USAGE(8, 0xFB), /* Vendor Usage 0xFB */ | ||||
| 	HID_RI_COLLECTION(8, 0x01), /* Vendor Usage 1 */ | ||||
| 	    HID_RI_USAGE(8, 0x02), /* Vendor Usage 2 */ | ||||
| 	    HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 	    HID_RI_LOGICAL_MAXIMUM(8, 0xFF), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 	    HID_RI_REPORT_COUNT(16, (sizeof(uint16_t) + SPM_PAGESIZE)), | ||||
| 	    HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), | ||||
| 		HID_RI_USAGE(8, 0x02), /* Vendor Usage 2 */ | ||||
| 		HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 		HID_RI_LOGICAL_MAXIMUM(8, 0xFF), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 		HID_RI_REPORT_COUNT(16, (sizeof(uint16_t) + SPM_PAGESIZE)), | ||||
| 		HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), | ||||
| 	HID_RI_END_COLLECTION(0), | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -72,7 +72,7 @@ | ||||
| 		 */ | ||||
| 		enum InterfaceDescriptors_t | ||||
| 		{ | ||||
| 			INTERFACE_ID_Printer      = 0, /**< Printer interface descriptor ID */ | ||||
| 			INTERFACE_ID_Printer = 0, /**< Printer interface descriptor ID */ | ||||
| 		}; | ||||
| 
 | ||||
| 		/** Enum for the device string descriptor IDs within the device. Each string descriptor should
 | ||||
|  | ||||
| @ -91,7 +91,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 		{ | ||||
| 			.Header                 = {.Size = sizeof(USB_Descriptor_Interface_Association_t), .Type = DTYPE_InterfaceAssociation}, | ||||
| 
 | ||||
| 			.FirstInterfaceIndex    = 0, | ||||
| 			.FirstInterfaceIndex    = INTERFACE_ID_CDC1_CCI, | ||||
| 			.TotalInterfaces        = 2, | ||||
| 
 | ||||
| 			.Class                  = CDC_CSCP_CDCClass, | ||||
| @ -138,8 +138,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 0, | ||||
| 			.SlaveInterfaceNumber   = 1, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC1_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC1_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC1_ManagementEndpoint = | ||||
| @ -192,7 +192,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 		{ | ||||
| 			.Header                 = {.Size = sizeof(USB_Descriptor_Interface_Association_t), .Type = DTYPE_InterfaceAssociation}, | ||||
| 
 | ||||
| 			.FirstInterfaceIndex    = 2, | ||||
| 			.FirstInterfaceIndex    = INTERFACE_ID_CDC2_CCI, | ||||
| 			.TotalInterfaces        = 2, | ||||
| 
 | ||||
| 			.Class                  = CDC_CSCP_CDCClass, | ||||
| @ -239,8 +239,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 2, | ||||
| 			.SlaveInterfaceNumber   = 3, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC2_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC2_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC2_ManagementEndpoint = | ||||
|  | ||||
| @ -53,7 +53,7 @@ | ||||
| 			// Keyboard HID Interface
 | ||||
| 			USB_Descriptor_Interface_t            HID_Interface; | ||||
| 			USB_HID_Descriptor_HID_t              HID_KeyboardHID; | ||||
| 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint; | ||||
| 			USB_Descriptor_Endpoint_t             HID_ReportINEndpoint; | ||||
| 		} USB_Descriptor_Configuration_t; | ||||
| 
 | ||||
| 		/** Enum for the device interface descriptor IDs within the device. Each interface descriptor
 | ||||
|  | ||||
| @ -44,7 +44,7 @@ static uint8_t PrevKeyboardHIDReportBuffer[sizeof(USB_KeyboardReport_Data_t)]; | ||||
|  *  within a device can be differentiated from one another. | ||||
|  */ | ||||
| USB_ClassInfo_HID_Device_t Keyboard_HID_Interface = | ||||
|  	{ | ||||
| 	{ | ||||
| 		.Config = | ||||
| 			{ | ||||
| 				.InterfaceNumber              = INTERFACE_ID_Keyboard, | ||||
| @ -57,7 +57,7 @@ USB_ClassInfo_HID_Device_t Keyboard_HID_Interface = | ||||
| 				.PrevReportINBuffer           = PrevKeyboardHIDReportBuffer, | ||||
| 				.PrevReportINBufferSize       = sizeof(PrevKeyboardHIDReportBuffer), | ||||
| 			}, | ||||
|     }; | ||||
| 	}; | ||||
| 
 | ||||
| 
 | ||||
| /** Main program entry point. This routine contains the overall program flow, including initial
 | ||||
|  | ||||
| @ -52,30 +52,30 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM HIDReport[] = | ||||
| 	HID_RI_USAGE(8, 0x02), /* Mouse */ | ||||
| 	HID_RI_COLLECTION(8, 0x01), /* Application */ | ||||
| 		HID_RI_REPORT_ID(8, HID_REPORTID_MouseReport), | ||||
| 	    HID_RI_USAGE(8, 0x01), /* Pointer */ | ||||
| 	    HID_RI_COLLECTION(8, 0x00), /* Physical */ | ||||
| 	        HID_RI_USAGE_PAGE(8, 0x09), /* Button */ | ||||
| 	        HID_RI_USAGE_MINIMUM(8, 0x01), | ||||
| 	        HID_RI_USAGE_MAXIMUM(8, 0x03), | ||||
| 	        HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 	        HID_RI_LOGICAL_MAXIMUM(8, 0x01), | ||||
| 	        HID_RI_REPORT_COUNT(8, 0x03), | ||||
| 	        HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 	        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 	        HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 	        HID_RI_REPORT_SIZE(8, 0x05), | ||||
| 	        HID_RI_INPUT(8, HID_IOF_CONSTANT), | ||||
| 	        HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ | ||||
| 	        HID_RI_USAGE(8, 0x30), /* Usage X */ | ||||
| 	        HID_RI_USAGE(8, 0x31), /* Usage Y */ | ||||
| 	        HID_RI_LOGICAL_MINIMUM(8, -1), | ||||
| 	        HID_RI_LOGICAL_MAXIMUM(8, 1), | ||||
| 	        HID_RI_PHYSICAL_MINIMUM(8, -1), | ||||
| 	        HID_RI_PHYSICAL_MAXIMUM(8, 1), | ||||
| 	        HID_RI_REPORT_COUNT(8, 0x02), | ||||
| 	        HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 	        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), | ||||
| 	    HID_RI_END_COLLECTION(0), | ||||
| 		HID_RI_USAGE(8, 0x01), /* Pointer */ | ||||
| 		HID_RI_COLLECTION(8, 0x00), /* Physical */ | ||||
| 			HID_RI_USAGE_PAGE(8, 0x09), /* Button */ | ||||
| 			HID_RI_USAGE_MINIMUM(8, 0x01), | ||||
| 			HID_RI_USAGE_MAXIMUM(8, 0x03), | ||||
| 			HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 			HID_RI_LOGICAL_MAXIMUM(8, 0x01), | ||||
| 			HID_RI_REPORT_COUNT(8, 0x03), | ||||
| 			HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 			HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 			HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 			HID_RI_REPORT_SIZE(8, 0x05), | ||||
| 			HID_RI_INPUT(8, HID_IOF_CONSTANT), | ||||
| 			HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ | ||||
| 			HID_RI_USAGE(8, 0x30), /* Usage X */ | ||||
| 			HID_RI_USAGE(8, 0x31), /* Usage Y */ | ||||
| 			HID_RI_LOGICAL_MINIMUM(8, -1), | ||||
| 			HID_RI_LOGICAL_MAXIMUM(8, 1), | ||||
| 			HID_RI_PHYSICAL_MINIMUM(8, -1), | ||||
| 			HID_RI_PHYSICAL_MAXIMUM(8, 1), | ||||
| 			HID_RI_REPORT_COUNT(8, 0x02), | ||||
| 			HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 			HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), | ||||
| 		HID_RI_END_COLLECTION(0), | ||||
| 	HID_RI_END_COLLECTION(0), | ||||
| 
 | ||||
| 	/* Keyboard Report */ | ||||
| @ -83,34 +83,34 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM HIDReport[] = | ||||
| 	HID_RI_USAGE(8, 0x06), /* Keyboard */ | ||||
| 	HID_RI_COLLECTION(8, 0x01), /* Application */ | ||||
| 		HID_RI_REPORT_ID(8, HID_REPORTID_KeyboardReport), | ||||
| 	    HID_RI_USAGE_PAGE(8, 0x07), /* Key Codes */ | ||||
| 	    HID_RI_USAGE_MINIMUM(8, 0xE0), /* Keyboard Left Control */ | ||||
| 	    HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */ | ||||
| 	    HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 	    HID_RI_LOGICAL_MAXIMUM(8, 0x01), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x08), | ||||
| 	    HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 	    HID_RI_INPUT(8, HID_IOF_CONSTANT), | ||||
| 	    HID_RI_USAGE_PAGE(8, 0x08), /* LEDs */ | ||||
| 	    HID_RI_USAGE_MINIMUM(8, 0x01), /* Num Lock */ | ||||
| 	    HID_RI_USAGE_MAXIMUM(8, 0x05), /* Kana */ | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x05), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 	    HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x03), | ||||
| 	    HID_RI_OUTPUT(8, HID_IOF_CONSTANT), | ||||
| 	    HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 	    HID_RI_LOGICAL_MAXIMUM(8, 0x65), | ||||
| 	    HID_RI_USAGE_PAGE(8, 0x07), /* Keyboard */ | ||||
| 	    HID_RI_USAGE_MINIMUM(8, 0x00), /* Reserved (no event indicated) */ | ||||
| 	    HID_RI_USAGE_MAXIMUM(8, 0x65), /* Keyboard Application */ | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x06), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 	    HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE), | ||||
| 		HID_RI_USAGE_PAGE(8, 0x07), /* Key Codes */ | ||||
| 		HID_RI_USAGE_MINIMUM(8, 0xE0), /* Keyboard Left Control */ | ||||
| 		HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */ | ||||
| 		HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 		HID_RI_LOGICAL_MAXIMUM(8, 0x01), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 		HID_RI_REPORT_COUNT(8, 0x08), | ||||
| 		HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 		HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 		HID_RI_INPUT(8, HID_IOF_CONSTANT), | ||||
| 		HID_RI_USAGE_PAGE(8, 0x08), /* LEDs */ | ||||
| 		HID_RI_USAGE_MINIMUM(8, 0x01), /* Num Lock */ | ||||
| 		HID_RI_USAGE_MAXIMUM(8, 0x05), /* Kana */ | ||||
| 		HID_RI_REPORT_COUNT(8, 0x05), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 		HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), | ||||
| 		HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x03), | ||||
| 		HID_RI_OUTPUT(8, HID_IOF_CONSTANT), | ||||
| 		HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 		HID_RI_LOGICAL_MAXIMUM(8, 0x65), | ||||
| 		HID_RI_USAGE_PAGE(8, 0x07), /* Keyboard */ | ||||
| 		HID_RI_USAGE_MINIMUM(8, 0x00), /* Reserved (no event indicated) */ | ||||
| 		HID_RI_USAGE_MAXIMUM(8, 0x65), /* Keyboard Application */ | ||||
| 		HID_RI_REPORT_COUNT(8, 0x06), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 		HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE), | ||||
| 	HID_RI_END_COLLECTION(0), | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -108,13 +108,13 @@ void SetupHardware() | ||||
| /** Event handler for the library USB Connection event. */ | ||||
| void EVENT_USB_Device_Connect(void) | ||||
| { | ||||
|     LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING); | ||||
| 	LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING); | ||||
| } | ||||
| 
 | ||||
| /** Event handler for the library USB Disconnection event. */ | ||||
| void EVENT_USB_Device_Disconnect(void) | ||||
| { | ||||
|     LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); | ||||
| 	LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); | ||||
| } | ||||
| 
 | ||||
| /** Event handler for the library USB Configuration Changed event. */ | ||||
|  | ||||
| @ -123,8 +123,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 0, | ||||
| 			.SlaveInterfaceNumber   = 1, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC_NotificationEndpoint = | ||||
|  | ||||
| @ -124,8 +124,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 0, | ||||
| 			.SlaveInterfaceNumber   = 1, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC_NotificationEndpoint = | ||||
|  | ||||
| @ -91,7 +91,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 		{ | ||||
| 			.Header                 = {.Size = sizeof(USB_Descriptor_Interface_Association_t), .Type = DTYPE_InterfaceAssociation}, | ||||
| 
 | ||||
| 			.FirstInterfaceIndex    = 0, | ||||
| 			.FirstInterfaceIndex    = INTERFACE_ID_CDC_CCI, | ||||
| 			.TotalInterfaces        = 2, | ||||
| 
 | ||||
| 			.Class                  = CDC_CSCP_CDCClass, | ||||
| @ -138,8 +138,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 0, | ||||
| 			.SlaveInterfaceNumber   = 1, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC_NotificationEndpoint = | ||||
|  | ||||
| @ -110,7 +110,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 		{ | ||||
| 			.Header                 = {.Size = sizeof(USB_Descriptor_Interface_Association_t), .Type = DTYPE_InterfaceAssociation}, | ||||
| 
 | ||||
| 			.FirstInterfaceIndex    = 0, | ||||
| 			.FirstInterfaceIndex    = INTERFACE_ID_CDC_CCI, | ||||
| 			.TotalInterfaces        = 2, | ||||
| 
 | ||||
| 			.Class                  = CDC_CSCP_CDCClass, | ||||
| @ -157,8 +157,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 0, | ||||
| 			.SlaveInterfaceNumber   = 1, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC_NotificationEndpoint = | ||||
|  | ||||
| @ -91,7 +91,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 		{ | ||||
| 			.Header                 = {.Size = sizeof(USB_Descriptor_Interface_Association_t), .Type = DTYPE_InterfaceAssociation}, | ||||
| 
 | ||||
| 			.FirstInterfaceIndex    = 0, | ||||
| 			.FirstInterfaceIndex    = INTERFACE_ID_CDC1_CCI, | ||||
| 			.TotalInterfaces        = 2, | ||||
| 
 | ||||
| 			.Class                  = CDC_CSCP_CDCClass, | ||||
| @ -138,8 +138,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 0, | ||||
| 			.SlaveInterfaceNumber   = 1, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC1_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC1_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC1_ManagementEndpoint = | ||||
| @ -192,7 +192,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 		{ | ||||
| 			.Header                 = {.Size = sizeof(USB_Descriptor_Interface_Association_t), .Type = DTYPE_InterfaceAssociation}, | ||||
| 
 | ||||
| 			.FirstInterfaceIndex    = 2, | ||||
| 			.FirstInterfaceIndex    = INTERFACE_ID_CDC2_CCI, | ||||
| 			.TotalInterfaces        = 2, | ||||
| 
 | ||||
| 			.Class                  = CDC_CSCP_CDCClass, | ||||
| @ -239,8 +239,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 2, | ||||
| 			.SlaveInterfaceNumber   = 3, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC2_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC2_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC2_ManagementEndpoint = | ||||
|  | ||||
| @ -48,30 +48,30 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] = | ||||
| 	HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ | ||||
| 	HID_RI_USAGE(8, 0x04), /* Joystick */ | ||||
| 	HID_RI_COLLECTION(8, 0x01), /* Application */ | ||||
| 	    HID_RI_USAGE(8, 0x01), /* Pointer */ | ||||
| 	    HID_RI_COLLECTION(8, 0x00), /* Physical */ | ||||
| 	        HID_RI_USAGE(8, 0x30), /* Usage X */ | ||||
| 	        HID_RI_USAGE(8, 0x31), /* Usage Y */ | ||||
| 	        HID_RI_USAGE(8, 0x32), /* Usage Z */ | ||||
| 	        HID_RI_LOGICAL_MINIMUM(8, -100), | ||||
| 	        HID_RI_LOGICAL_MAXIMUM(8, 100), | ||||
| 	        HID_RI_PHYSICAL_MINIMUM(8, -1), | ||||
| 	        HID_RI_PHYSICAL_MAXIMUM(8, 1), | ||||
| 	        HID_RI_REPORT_COUNT(8, 0x03), | ||||
| 	        HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 	        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 	    HID_RI_END_COLLECTION(0), | ||||
| 	    HID_RI_USAGE_PAGE(8, 0x09), /* Button */ | ||||
| 	    HID_RI_USAGE_MINIMUM(8, 0x01), | ||||
| 	    HID_RI_USAGE_MAXIMUM(8, 0x02), | ||||
| 	    HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 	    HID_RI_LOGICAL_MAXIMUM(8, 0x01), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x02), | ||||
| 	    HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x06), | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 	    HID_RI_INPUT(8, HID_IOF_CONSTANT), | ||||
| 		HID_RI_USAGE(8, 0x01), /* Pointer */ | ||||
| 		HID_RI_COLLECTION(8, 0x00), /* Physical */ | ||||
| 			HID_RI_USAGE(8, 0x30), /* Usage X */ | ||||
| 			HID_RI_USAGE(8, 0x31), /* Usage Y */ | ||||
| 			HID_RI_USAGE(8, 0x32), /* Usage Z */ | ||||
| 			HID_RI_LOGICAL_MINIMUM(8, -100), | ||||
| 			HID_RI_LOGICAL_MAXIMUM(8, 100), | ||||
| 			HID_RI_PHYSICAL_MINIMUM(8, -1), | ||||
| 			HID_RI_PHYSICAL_MAXIMUM(8, 1), | ||||
| 			HID_RI_REPORT_COUNT(8, 0x03), | ||||
| 			HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 			HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 		HID_RI_END_COLLECTION(0), | ||||
| 		HID_RI_USAGE_PAGE(8, 0x09), /* Button */ | ||||
| 		HID_RI_USAGE_MINIMUM(8, 0x01), | ||||
| 		HID_RI_USAGE_MAXIMUM(8, 0x02), | ||||
| 		HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 		HID_RI_LOGICAL_MAXIMUM(8, 0x01), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 		HID_RI_REPORT_COUNT(8, 0x02), | ||||
| 		HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x06), | ||||
| 		HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 		HID_RI_INPUT(8, HID_IOF_CONSTANT), | ||||
| 	HID_RI_END_COLLECTION(0), | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -49,34 +49,34 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = | ||||
| 	HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ | ||||
| 	HID_RI_USAGE(8, 0x06), /* Keyboard */ | ||||
| 	HID_RI_COLLECTION(8, 0x01), /* Application */ | ||||
| 	    HID_RI_USAGE_PAGE(8, 0x07), /* Key Codes */ | ||||
| 	    HID_RI_USAGE_MINIMUM(8, 0xE0), /* Keyboard Left Control */ | ||||
| 	    HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */ | ||||
| 	    HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 	    HID_RI_LOGICAL_MAXIMUM(8, 0x01), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x08), | ||||
| 	    HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 	    HID_RI_INPUT(8, HID_IOF_CONSTANT), | ||||
| 	    HID_RI_USAGE_PAGE(8, 0x08), /* LEDs */ | ||||
| 	    HID_RI_USAGE_MINIMUM(8, 0x01), /* Num Lock */ | ||||
| 	    HID_RI_USAGE_MAXIMUM(8, 0x05), /* Kana */ | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x05), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 	    HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x03), | ||||
| 	    HID_RI_OUTPUT(8, HID_IOF_CONSTANT), | ||||
| 	    HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 	    HID_RI_LOGICAL_MAXIMUM(8, 0x65), | ||||
| 	    HID_RI_USAGE_PAGE(8, 0x07), /* Keyboard */ | ||||
| 	    HID_RI_USAGE_MINIMUM(8, 0x00), /* Reserved (no event indicated) */ | ||||
| 	    HID_RI_USAGE_MAXIMUM(8, 0x65), /* Keyboard Application */ | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x06), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 	    HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE), | ||||
| 		HID_RI_USAGE_PAGE(8, 0x07), /* Key Codes */ | ||||
| 		HID_RI_USAGE_MINIMUM(8, 0xE0), /* Keyboard Left Control */ | ||||
| 		HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */ | ||||
| 		HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 		HID_RI_LOGICAL_MAXIMUM(8, 0x01), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 		HID_RI_REPORT_COUNT(8, 0x08), | ||||
| 		HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 		HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 		HID_RI_INPUT(8, HID_IOF_CONSTANT), | ||||
| 		HID_RI_USAGE_PAGE(8, 0x08), /* LEDs */ | ||||
| 		HID_RI_USAGE_MINIMUM(8, 0x01), /* Num Lock */ | ||||
| 		HID_RI_USAGE_MAXIMUM(8, 0x05), /* Kana */ | ||||
| 		HID_RI_REPORT_COUNT(8, 0x05), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 		HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), | ||||
| 		HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x03), | ||||
| 		HID_RI_OUTPUT(8, HID_IOF_CONSTANT), | ||||
| 		HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 		HID_RI_LOGICAL_MAXIMUM(8, 0x65), | ||||
| 		HID_RI_USAGE_PAGE(8, 0x07), /* Keyboard */ | ||||
| 		HID_RI_USAGE_MINIMUM(8, 0x00), /* Reserved (no event indicated) */ | ||||
| 		HID_RI_USAGE_MAXIMUM(8, 0x65), /* Keyboard Application */ | ||||
| 		HID_RI_REPORT_COUNT(8, 0x06), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 		HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE), | ||||
| 	HID_RI_END_COLLECTION(0), | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -51,30 +51,30 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] = | ||||
| 	HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ | ||||
| 	HID_RI_USAGE(8, 0x02), /* Mouse */ | ||||
| 	HID_RI_COLLECTION(8, 0x01), /* Application */ | ||||
| 	    HID_RI_USAGE(8, 0x01), /* Pointer */ | ||||
| 	    HID_RI_COLLECTION(8, 0x00), /* Physical */ | ||||
| 	        HID_RI_USAGE_PAGE(8, 0x09), /* Button */ | ||||
| 	        HID_RI_USAGE_MINIMUM(8, 0x01), | ||||
| 	        HID_RI_USAGE_MAXIMUM(8, 0x03), | ||||
| 	        HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 	        HID_RI_LOGICAL_MAXIMUM(8, 0x01), | ||||
| 	        HID_RI_REPORT_COUNT(8, 0x03), | ||||
| 	        HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 	        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 	        HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 	        HID_RI_REPORT_SIZE(8, 0x05), | ||||
| 	        HID_RI_INPUT(8, HID_IOF_CONSTANT), | ||||
| 	        HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ | ||||
| 	        HID_RI_USAGE(8, 0x30), /* Usage X */ | ||||
| 	        HID_RI_USAGE(8, 0x31), /* Usage Y */ | ||||
| 	        HID_RI_LOGICAL_MINIMUM(8, -1), | ||||
| 	        HID_RI_LOGICAL_MAXIMUM(8, 1), | ||||
| 	        HID_RI_PHYSICAL_MINIMUM(8, -1), | ||||
| 	        HID_RI_PHYSICAL_MAXIMUM(8, 1), | ||||
| 	        HID_RI_REPORT_COUNT(8, 0x02), | ||||
| 	        HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 	        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), | ||||
| 	    HID_RI_END_COLLECTION(0), | ||||
| 		HID_RI_USAGE(8, 0x01), /* Pointer */ | ||||
| 		HID_RI_COLLECTION(8, 0x00), /* Physical */ | ||||
| 			HID_RI_USAGE_PAGE(8, 0x09), /* Button */ | ||||
| 			HID_RI_USAGE_MINIMUM(8, 0x01), | ||||
| 			HID_RI_USAGE_MAXIMUM(8, 0x03), | ||||
| 			HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 			HID_RI_LOGICAL_MAXIMUM(8, 0x01), | ||||
| 			HID_RI_REPORT_COUNT(8, 0x03), | ||||
| 			HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 			HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 			HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 			HID_RI_REPORT_SIZE(8, 0x05), | ||||
| 			HID_RI_INPUT(8, HID_IOF_CONSTANT), | ||||
| 			HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ | ||||
| 			HID_RI_USAGE(8, 0x30), /* Usage X */ | ||||
| 			HID_RI_USAGE(8, 0x31), /* Usage Y */ | ||||
| 			HID_RI_LOGICAL_MINIMUM(8, -1), | ||||
| 			HID_RI_LOGICAL_MAXIMUM(8, 1), | ||||
| 			HID_RI_PHYSICAL_MINIMUM(8, -1), | ||||
| 			HID_RI_PHYSICAL_MAXIMUM(8, 1), | ||||
| 			HID_RI_REPORT_COUNT(8, 0x02), | ||||
| 			HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 			HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), | ||||
| 		HID_RI_END_COLLECTION(0), | ||||
| 	HID_RI_END_COLLECTION(0), | ||||
| }; | ||||
| 
 | ||||
| @ -84,34 +84,34 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = | ||||
| 	HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ | ||||
| 	HID_RI_USAGE(8, 0x06), /* Keyboard */ | ||||
| 	HID_RI_COLLECTION(8, 0x01), /* Application */ | ||||
| 	    HID_RI_USAGE_PAGE(8, 0x07), /* Key Codes */ | ||||
| 	    HID_RI_USAGE_MINIMUM(8, 0xE0), /* Keyboard Left Control */ | ||||
| 	    HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */ | ||||
| 	    HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 	    HID_RI_LOGICAL_MAXIMUM(8, 0x01), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x08), | ||||
| 	    HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 	    HID_RI_INPUT(8, HID_IOF_CONSTANT), | ||||
| 	    HID_RI_USAGE_PAGE(8, 0x08), /* LEDs */ | ||||
| 	    HID_RI_USAGE_MINIMUM(8, 0x01), /* Num Lock */ | ||||
| 	    HID_RI_USAGE_MAXIMUM(8, 0x05), /* Kana */ | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x05), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 	    HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x03), | ||||
| 	    HID_RI_OUTPUT(8, HID_IOF_CONSTANT), | ||||
| 	    HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 	    HID_RI_LOGICAL_MAXIMUM(8, 0x65), | ||||
| 	    HID_RI_USAGE_PAGE(8, 0x07), /* Keyboard */ | ||||
| 	    HID_RI_USAGE_MINIMUM(8, 0x00), /* Reserved (no event indicated) */ | ||||
| 	    HID_RI_USAGE_MAXIMUM(8, 0x65), /* Keyboard Application */ | ||||
| 	    HID_RI_REPORT_COUNT(8, 0x06), | ||||
| 	    HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 	    HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE), | ||||
| 		HID_RI_USAGE_PAGE(8, 0x07), /* Key Codes */ | ||||
| 		HID_RI_USAGE_MINIMUM(8, 0xE0), /* Keyboard Left Control */ | ||||
| 		HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */ | ||||
| 		HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 		HID_RI_LOGICAL_MAXIMUM(8, 0x01), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 		HID_RI_REPORT_COUNT(8, 0x08), | ||||
| 		HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 		HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 		HID_RI_INPUT(8, HID_IOF_CONSTANT), | ||||
| 		HID_RI_USAGE_PAGE(8, 0x08), /* LEDs */ | ||||
| 		HID_RI_USAGE_MINIMUM(8, 0x01), /* Num Lock */ | ||||
| 		HID_RI_USAGE_MAXIMUM(8, 0x05), /* Kana */ | ||||
| 		HID_RI_REPORT_COUNT(8, 0x05), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 		HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), | ||||
| 		HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x03), | ||||
| 		HID_RI_OUTPUT(8, HID_IOF_CONSTANT), | ||||
| 		HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 		HID_RI_LOGICAL_MAXIMUM(8, 0x65), | ||||
| 		HID_RI_USAGE_PAGE(8, 0x07), /* Keyboard */ | ||||
| 		HID_RI_USAGE_MINIMUM(8, 0x00), /* Reserved (no event indicated) */ | ||||
| 		HID_RI_USAGE_MAXIMUM(8, 0x65), /* Keyboard Application */ | ||||
| 		HID_RI_REPORT_COUNT(8, 0x06), | ||||
| 		HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 		HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE), | ||||
| 	HID_RI_END_COLLECTION(0), | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -48,30 +48,30 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] = | ||||
| 	HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ | ||||
| 	HID_RI_USAGE(8, 0x02), /* Mouse */ | ||||
| 	HID_RI_COLLECTION(8, 0x01), /* Application */ | ||||
| 	    HID_RI_USAGE(8, 0x01), /* Pointer */ | ||||
| 	    HID_RI_COLLECTION(8, 0x00), /* Physical */ | ||||
| 	        HID_RI_USAGE_PAGE(8, 0x09), /* Button */ | ||||
| 	        HID_RI_USAGE_MINIMUM(8, 0x01), | ||||
| 	        HID_RI_USAGE_MAXIMUM(8, 0x03), | ||||
| 	        HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 	        HID_RI_LOGICAL_MAXIMUM(8, 0x01), | ||||
| 	        HID_RI_REPORT_COUNT(8, 0x03), | ||||
| 	        HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 	        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 	        HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 	        HID_RI_REPORT_SIZE(8, 0x05), | ||||
| 	        HID_RI_INPUT(8, HID_IOF_CONSTANT), | ||||
| 	        HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ | ||||
| 	        HID_RI_USAGE(8, 0x30), /* Usage X */ | ||||
| 	        HID_RI_USAGE(8, 0x31), /* Usage Y */ | ||||
| 	        HID_RI_LOGICAL_MINIMUM(8, -1), | ||||
| 	        HID_RI_LOGICAL_MAXIMUM(8, 1), | ||||
| 	        HID_RI_PHYSICAL_MINIMUM(8, -1), | ||||
| 	        HID_RI_PHYSICAL_MAXIMUM(8, 1), | ||||
| 	        HID_RI_REPORT_COUNT(8, 0x02), | ||||
| 	        HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 	        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), | ||||
| 	    HID_RI_END_COLLECTION(0), | ||||
| 		HID_RI_USAGE(8, 0x01), /* Pointer */ | ||||
| 		HID_RI_COLLECTION(8, 0x00), /* Physical */ | ||||
| 			HID_RI_USAGE_PAGE(8, 0x09), /* Button */ | ||||
| 			HID_RI_USAGE_MINIMUM(8, 0x01), | ||||
| 			HID_RI_USAGE_MAXIMUM(8, 0x03), | ||||
| 			HID_RI_LOGICAL_MINIMUM(8, 0x00), | ||||
| 			HID_RI_LOGICAL_MAXIMUM(8, 0x01), | ||||
| 			HID_RI_REPORT_COUNT(8, 0x03), | ||||
| 			HID_RI_REPORT_SIZE(8, 0x01), | ||||
| 			HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), | ||||
| 			HID_RI_REPORT_COUNT(8, 0x01), | ||||
| 			HID_RI_REPORT_SIZE(8, 0x05), | ||||
| 			HID_RI_INPUT(8, HID_IOF_CONSTANT), | ||||
| 			HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ | ||||
| 			HID_RI_USAGE(8, 0x30), /* Usage X */ | ||||
| 			HID_RI_USAGE(8, 0x31), /* Usage Y */ | ||||
| 			HID_RI_LOGICAL_MINIMUM(8, -1), | ||||
| 			HID_RI_LOGICAL_MAXIMUM(8, 1), | ||||
| 			HID_RI_PHYSICAL_MINIMUM(8, -1), | ||||
| 			HID_RI_PHYSICAL_MAXIMUM(8, 1), | ||||
| 			HID_RI_REPORT_COUNT(8, 0x02), | ||||
| 			HID_RI_REPORT_SIZE(8, 0x08), | ||||
| 			HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), | ||||
| 		HID_RI_END_COLLECTION(0), | ||||
| 	HID_RI_END_COLLECTION(0), | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -123,8 +123,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 0, | ||||
| 			.SlaveInterfaceNumber   = 1, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC_NotificationEndpoint = | ||||
|  | ||||
| @ -124,8 +124,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 0, | ||||
| 			.SlaveInterfaceNumber   = 1, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC_NotificationEndpoint = | ||||
|  | ||||
| @ -123,8 +123,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 0, | ||||
| 			.SlaveInterfaceNumber   = 1, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC_NotificationEndpoint = | ||||
|  | ||||
| @ -124,8 +124,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 0, | ||||
| 			.SlaveInterfaceNumber   = 1, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC_NotificationEndpoint = | ||||
|  | ||||
| @ -136,8 +136,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 0, | ||||
| 			.SlaveInterfaceNumber   = 1, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC_NotificationEndpoint = | ||||
|  | ||||
| @ -124,8 +124,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 0, | ||||
| 			.SlaveInterfaceNumber   = 1, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC_NotificationEndpoint = | ||||
|  | ||||
| @ -91,7 +91,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 		{ | ||||
| 			.Header                 = {.Size = sizeof(USB_Descriptor_Interface_Association_t), .Type = DTYPE_InterfaceAssociation}, | ||||
| 
 | ||||
| 			.FirstInterfaceIndex    = 0, | ||||
| 			.FirstInterfaceIndex    = INTERFACE_ID_CDC_CCI, | ||||
| 			.TotalInterfaces        = 2, | ||||
| 
 | ||||
| 			.Class                  = CDC_CSCP_CDCClass, | ||||
| @ -138,8 +138,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 0, | ||||
| 			.SlaveInterfaceNumber   = 1, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC_NotificationEndpoint = | ||||
|  | ||||
| @ -124,8 +124,8 @@ const USART_USB_Descriptor_Configuration_t PROGMEM USART_ConfigurationDescriptor | ||||
| 			.Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, | ||||
| 			.Subtype                = CDC_DSUBTYPE_CSInterface_Union, | ||||
| 
 | ||||
| 			.MasterInterfaceNumber  = 0, | ||||
| 			.SlaveInterfaceNumber   = 1, | ||||
| 			.MasterInterfaceNumber  = INTERFACE_ID_CDC_CCI, | ||||
| 			.SlaveInterfaceNumber   = INTERFACE_ID_CDC_DCI, | ||||
| 		}, | ||||
| 
 | ||||
| 	.CDC_NotificationEndpoint = | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 László Monda
						László Monda