Tighten up the code in the delta movement detection code in the MouseHostWithParser and JoystickHostWithParser demos. Make the ClassDriver JoystickHostWithParser demo use the HID_ALIGN_DATA() macro instead of manual shifting and casting.
This commit is contained in:
		
							parent
							
								
									508e905d8d
								
							
						
					
					
						commit
						eb060db71b
					
				
					 4 changed files with 18 additions and 32 deletions
				
			
		|  | @ -285,17 +285,13 @@ void ProcessJoystickReport(uint8_t* JoystickReport) | |||
| 			   | ||||
| 			int16_t DeltaMovement = HID_ALIGN_DATA(ReportItem, int16_t); | ||||
| 			 | ||||
| 			/* Determine if the report is for the X or Y delta movement */ | ||||
| 			if (ReportItem->Attributes.Usage.Usage == USAGE_X) | ||||
| 			/* Check to see if a (non-zero) delta movement has been indicated */ | ||||
| 			if (DeltaMovement) | ||||
| 			{ | ||||
| 				/* Turn on the appropriate LED according to direction if the delta is non-zero */ | ||||
| 				if (DeltaMovement) | ||||
| 				/* Determine if the report is for the X or Y delta movement, light LEDs as appropriate */ | ||||
| 				if (ReportItem->Attributes.Usage.Usage == USAGE_X) | ||||
| 				  LEDMask |= ((DeltaMovement > 0) ? LEDS_LED1 : LEDS_LED2); | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				/* Turn on the appropriate LED according to direction if the delta is non-zero */ | ||||
| 				if (DeltaMovement) | ||||
| 				else | ||||
| 				  LEDMask |= ((DeltaMovement > 0) ? LEDS_LED3 : LEDS_LED4); | ||||
| 			} | ||||
| 		} | ||||
|  |  | |||
|  | @ -299,19 +299,15 @@ void ProcessMouseReport(uint8_t* MouseReport) | |||
| 			if (!(FoundData)) | ||||
| 			  continue; | ||||
| 			   | ||||
| 			int16_t DeltaMovement = (int16_t)(ReportItem->Value << (16 - ReportItem->Attributes.BitSize)); | ||||
| 			int16_t DeltaMovement = HID_ALIGN_DATA(ReportItem, int16_t); | ||||
| 			 | ||||
| 			/* Determine if the report is for the X or Y delta movement */ | ||||
| 			if (ReportItem->Attributes.Usage.Usage == USAGE_X) | ||||
| 			/* Check to see if a (non-zero) delta movement has been indicated */ | ||||
| 			if (DeltaMovement) | ||||
| 			{ | ||||
| 				/* Turn on the appropriate LED according to direction if the delta is non-zero */ | ||||
| 				if (DeltaMovement) | ||||
| 				/* Determine if the report is for the X or Y delta movement, light LEDs as appropriate */ | ||||
| 				if (ReportItem->Attributes.Usage.Usage == USAGE_X) | ||||
| 				  LEDMask |= ((DeltaMovement > 0) ? LEDS_LED1 : LEDS_LED2); | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				/* Turn on the appropriate LED according to direction if the delta is non-zero */ | ||||
| 				if (DeltaMovement) | ||||
| 				else | ||||
| 				  LEDMask |= ((DeltaMovement > 0) ? LEDS_LED3 : LEDS_LED4); | ||||
| 			} | ||||
| 		} | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dean Camera
						Dean Camera