Add new HID_DESCRIPTOR_VENDOR() macro, change over all projects and Device ClassDriver demos to use it.
Fix reversed byte ordering of multi-byte HID data. Added support to the HID parser for extended USAGE items that contain the usage page as well as the usage index. Removed the HID_IOF_NON_VOLATILE and HID_IOF_VOLATILE flags from HID INPUT items where the flag is invalid. Changed over HID OUTPUT items to use HID_IOF_NON_VOLATILE. Change over MagStripe project to use HID_DESCRIPTOR_KEYBOARD() for its HID report. Change over MouseHostDevice demo to use HID_DESCRIPTOR_MOUSE() for its HID report.
This commit is contained in:
		
							parent
							
								
									a852ea8e43
								
							
						
					
					
						commit
						e6dc951630
					
				
					 24 changed files with 257 additions and 286 deletions
				
			
		| 
						 | 
				
			
			@ -45,7 +45,7 @@
 | 
			
		|||
 */
 | 
			
		||||
USB_Descriptor_HIDReport_Datatype_t PROGMEM GenericReport[] =
 | 
			
		||||
{
 | 
			
		||||
	HID_RI_USAGE_PAGE(16, 0x00FF), /* Vendor Page 1 */
 | 
			
		||||
	HID_RI_USAGE_PAGE(16, 0xFF00), /* Vendor Page 1 */
 | 
			
		||||
	HID_RI_USAGE(8, 0x01), /* Vendor Usage 1 */
 | 
			
		||||
	HID_RI_COLLECTION(8, 0x01), /* Vendor Usage 1 */
 | 
			
		||||
	    HID_RI_USAGE(8, 0x02), /* Vendor Usage 2 */
 | 
			
		||||
| 
						 | 
				
			
			@ -53,13 +53,13 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM GenericReport[] =
 | 
			
		|||
	    HID_RI_LOGICAL_MAXIMUM(8, 0xFF),
 | 
			
		||||
	    HID_RI_REPORT_SIZE(8, 0x08),
 | 
			
		||||
	    HID_RI_REPORT_COUNT(8, GENERIC_REPORT_SIZE),
 | 
			
		||||
	    HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE),
 | 
			
		||||
	    HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
 | 
			
		||||
	    HID_RI_USAGE(8, 0x03), /* Vendor Usage 3 */
 | 
			
		||||
	    HID_RI_LOGICAL_MINIMUM(8, 0x00),
 | 
			
		||||
	    HID_RI_LOGICAL_MAXIMUM(8, 0xFF),
 | 
			
		||||
	    HID_RI_REPORT_SIZE(8, 0x08),
 | 
			
		||||
	    HID_RI_REPORT_COUNT(8, GENERIC_REPORT_SIZE),
 | 
			
		||||
	    HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE),
 | 
			
		||||
	    HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
 | 
			
		||||
	HID_RI_END_COLLECTION(0),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -56,7 +56,7 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] =
 | 
			
		|||
	        HID_RI_LOGICAL_MAXIMUM(8, 100),
 | 
			
		||||
	        HID_RI_REPORT_SIZE(8, 0x08),
 | 
			
		||||
	        HID_RI_REPORT_COUNT(8, 0x02),
 | 
			
		||||
	        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
 | 
			
		||||
	        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),
 | 
			
		||||
| 
						 | 
				
			
			@ -65,7 +65,7 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] =
 | 
			
		|||
	    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_IOF_NON_VOLATILE),
 | 
			
		||||
	    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),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -56,7 +56,7 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] =
 | 
			
		|||
	    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_IOF_NON_VOLATILE),
 | 
			
		||||
	    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),
 | 
			
		||||
| 
						 | 
				
			
			@ -76,7 +76,7 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] =
 | 
			
		|||
	    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_IOF_NON_VOLATILE),
 | 
			
		||||
	    HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE),
 | 
			
		||||
	HID_RI_END_COLLECTION(0),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -60,7 +60,7 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] =
 | 
			
		|||
	        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_IOF_VOLATILE),
 | 
			
		||||
	        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),
 | 
			
		||||
| 
						 | 
				
			
			@ -73,7 +73,7 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] =
 | 
			
		|||
	        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_IOF_NON_VOLATILE),
 | 
			
		||||
	        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE),
 | 
			
		||||
	    HID_RI_END_COLLECTION(0),
 | 
			
		||||
	HID_RI_END_COLLECTION(0),
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -91,7 +91,7 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] =
 | 
			
		|||
	    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_IOF_NON_VOLATILE),
 | 
			
		||||
	    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),
 | 
			
		||||
| 
						 | 
				
			
			@ -111,7 +111,7 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] =
 | 
			
		|||
	    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_IOF_NON_VOLATILE),
 | 
			
		||||
	    HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE),
 | 
			
		||||
	HID_RI_END_COLLECTION(0),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -57,7 +57,7 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] =
 | 
			
		|||
	        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_IOF_VOLATILE),
 | 
			
		||||
	        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),
 | 
			
		||||
| 
						 | 
				
			
			@ -70,7 +70,7 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] =
 | 
			
		|||
	        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_IOF_NON_VOLATILE),
 | 
			
		||||
	        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE),
 | 
			
		||||
	    HID_RI_END_COLLECTION(0),
 | 
			
		||||
	HID_RI_END_COLLECTION(0),
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue