Added new HID_DESCRIPTOR_MOUSE, HID_DESCRIPTOR_KEYBOARD and HID_DESCRIPTOR_JOYSTICK macros for easy automatic creation of basic USB HID device reports.
This commit is contained in:
		
							parent
							
								
									6d67b1df3c
								
							
						
					
					
						commit
						6c7ed7ecd6
					
				
					 12 changed files with 208 additions and 213 deletions
				
			
		| 
						 | 
				
			
			@ -44,33 +44,14 @@
 | 
			
		|||
 *  more details on HID report descriptors.
 | 
			
		||||
 */ 
 | 
			
		||||
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_LOGICAL_MINIMUM(8, -100),
 | 
			
		||||
	        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_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_IOF_NON_VOLATILE),
 | 
			
		||||
	    HID_RI_REPORT_SIZE(8, 0x06),
 | 
			
		||||
	    HID_RI_REPORT_COUNT(8, 0x01),
 | 
			
		||||
	    HID_RI_INPUT(8, HID_IOF_CONSTANT),
 | 
			
		||||
	HID_RI_END_COLLECTION(0),
 | 
			
		||||
};
 | 
			
		||||
	{
 | 
			
		||||
		/* Use the HID class driver's standard Joystick report.
 | 
			
		||||
		 *   Min X/Y Axis values: -100
 | 
			
		||||
		 *   Max X/Y Axis values:  100
 | 
			
		||||
		 *   Buttons: 2
 | 
			
		||||
		 */
 | 
			
		||||
		HID_DESCRIPTOR_JOYSTICK(-100, 100, 2)
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
 | 
			
		||||
 *  device characteristics, including the supported USB version, control endpoint size and the
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -160,7 +160,7 @@ bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDIn
 | 
			
		|||
	  JoystickReport->X =  100;
 | 
			
		||||
 | 
			
		||||
	if (JoyStatus_LCL & JOY_PRESS)
 | 
			
		||||
	  JoystickReport->Button  = (1 << 1);
 | 
			
		||||
	  JoystickReport->Button |= (1 << 1);
 | 
			
		||||
 | 
			
		||||
	if (ButtonStatus_LCL & BUTTONS_BUTTON1)
 | 
			
		||||
	  JoystickReport->Button |= (1 << 0);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,38 +45,10 @@
 | 
			
		|||
 */
 | 
			
		||||
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_IOF_NON_VOLATILE),
 | 
			
		||||
	    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_IOF_NON_VOLATILE),
 | 
			
		||||
	HID_RI_END_COLLECTION(0),
 | 
			
		||||
	/* Use the HID class driver's standard Keyboard report.
 | 
			
		||||
	 *   Max simultaneous keys: 6
 | 
			
		||||
	 */
 | 
			
		||||
	HID_DESCRIPTOR_KEYBOARD(6)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,71 +47,24 @@
 | 
			
		|||
 */
 | 
			
		||||
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_IOF_VOLATILE),
 | 
			
		||||
	        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_IOF_NON_VOLATILE),
 | 
			
		||||
	    HID_RI_END_COLLECTION(0),
 | 
			
		||||
	HID_RI_END_COLLECTION(0),
 | 
			
		||||
	/* Use the HID class driver's standard Mouse report.
 | 
			
		||||
	 *   Min X/Y Axis values: -1
 | 
			
		||||
	 *   Max X/Y Axis values:  1
 | 
			
		||||
	 *   Min physical X/Y Axis values (used to determine resolution): -1
 | 
			
		||||
	 *   Max physical X/Y Axis values (used to determine resolution):  1
 | 
			
		||||
	 *   Buttons: 3
 | 
			
		||||
	 *   Absolute screen coordinates: false
 | 
			
		||||
	 */
 | 
			
		||||
	HID_DESCRIPTOR_MOUSE(-1, 1, -1, 1, 3, false)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/** Same as the MouseReport structure, but defines the keyboard HID interface's report structure. */
 | 
			
		||||
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_IOF_NON_VOLATILE),
 | 
			
		||||
	    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_IOF_NON_VOLATILE),
 | 
			
		||||
	HID_RI_END_COLLECTION(0),
 | 
			
		||||
	/* Use the HID class driver's standard Keyboard report.
 | 
			
		||||
	 *   Max simultaneous keys: 6
 | 
			
		||||
	 */
 | 
			
		||||
	HID_DESCRIPTOR_KEYBOARD(6)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -58,38 +58,10 @@
 | 
			
		|||
 */
 | 
			
		||||
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_IOF_NON_VOLATILE),
 | 
			
		||||
	    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_IOF_NON_VOLATILE),
 | 
			
		||||
	HID_RI_END_COLLECTION(0),
 | 
			
		||||
	/* Use the HID class driver's standard Keyboard report.
 | 
			
		||||
	 *   Max simultaneous keys: 6
 | 
			
		||||
	 */
 | 
			
		||||
	HID_DESCRIPTOR_KEYBOARD(6)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,34 +45,15 @@
 | 
			
		|||
 */
 | 
			
		||||
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_IOF_VOLATILE),
 | 
			
		||||
	        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_IOF_NON_VOLATILE),
 | 
			
		||||
	    HID_RI_END_COLLECTION(0),
 | 
			
		||||
	HID_RI_END_COLLECTION(0),
 | 
			
		||||
	/* Use the HID class driver's standard Mouse report.
 | 
			
		||||
	 *   Min X/Y Axis values: -1
 | 
			
		||||
	 *   Max X/Y Axis values:  1
 | 
			
		||||
	 *   Min physical X/Y Axis values (used to determine resolution): -1
 | 
			
		||||
	 *   Max physical X/Y Axis values (used to determine resolution):  1
 | 
			
		||||
	 *   Buttons: 3
 | 
			
		||||
	 *   Absolute screen coordinates: false
 | 
			
		||||
	 */
 | 
			
		||||
	HID_DESCRIPTOR_MOUSE(-1, 1, -1, 1, 3, false)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -57,34 +57,15 @@
 | 
			
		|||
 */
 | 
			
		||||
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_IOF_VOLATILE),
 | 
			
		||||
	        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_IOF_NON_VOLATILE),
 | 
			
		||||
	    HID_RI_END_COLLECTION(0),
 | 
			
		||||
	HID_RI_END_COLLECTION(0),
 | 
			
		||||
	/* Use the HID class driver's standard Mouse report.
 | 
			
		||||
	 *   Min X/Y Axis values: -1
 | 
			
		||||
	 *   Max X/Y Axis values:  1
 | 
			
		||||
	 *   Min physical X/Y Axis values (used to determine resolution): -1
 | 
			
		||||
	 *   Max physical X/Y Axis values (used to determine resolution):  1
 | 
			
		||||
	 *   Buttons: 3
 | 
			
		||||
	 *   Absolute screen coordinates: false
 | 
			
		||||
	 */
 | 
			
		||||
	HID_DESCRIPTOR_MOUSE(-1, 1, -1, 1, 3, false)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -159,7 +159,7 @@ bool GetNextReport(USB_JoystickReport_Data_t* const ReportData)
 | 
			
		|||
	  ReportData->X =  100;
 | 
			
		||||
 | 
			
		||||
	if (JoyStatus_LCL & JOY_PRESS)
 | 
			
		||||
	  ReportData->Button  = (1 << 1);
 | 
			
		||||
	  ReportData->Button |= (1 << 1);
 | 
			
		||||
 | 
			
		||||
	if (ButtonStatus_LCL & BUTTONS_BUTTON1)
 | 
			
		||||
	  ReportData->Button |= (1 << 0);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -290,7 +290,7 @@ void Mouse_HID_Task(void)
 | 
			
		|||
		  MouseReportData.X = -1;
 | 
			
		||||
 | 
			
		||||
		if (JoyStatus_LCL & JOY_PRESS)
 | 
			
		||||
		  MouseReportData.Button  = (1 << 0);
 | 
			
		||||
		  MouseReportData.Button |= (1 << 0);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Select the Mouse Report Endpoint */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -233,10 +233,10 @@ void CreateMouseReport(USB_MouseReport_Data_t* const ReportData)
 | 
			
		|||
	if (JoyStatus_LCL & JOY_LEFT)
 | 
			
		||||
	  ReportData->X = -1;
 | 
			
		||||
	else if (JoyStatus_LCL & JOY_RIGHT)
 | 
			
		||||
	  ReportData->X = 1;
 | 
			
		||||
	  ReportData->X =  1;
 | 
			
		||||
 | 
			
		||||
	if (JoyStatus_LCL & JOY_PRESS)
 | 
			
		||||
	  ReportData->Button  = (1 << 0);
 | 
			
		||||
	  ReportData->Button |= (1 << 0);
 | 
			
		||||
 | 
			
		||||
	if (ButtonStatus_LCL & BUTTONS_BUTTON1)
 | 
			
		||||
	  ReportData->Button |= (1 << 1);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue