forked from mfulz_github/qmk_firmware
		
	Fixed report data alignment issues in the MouseHostWithParser demo when X and Y movement data size is not a multiple of 8 bits.
Fixed HID Report Descriptor Parser not correctly resetting internal states when a REPORT ID element is encountered.
This commit is contained in:
		
							parent
							
								
									3472af91a5
								
							
						
					
					
						commit
						7f3f39b575
					
				@ -260,12 +260,7 @@ void ProcessMouseReport(uint8_t* MouseReport)
 | 
			
		||||
			if (!(FoundData))
 | 
			
		||||
			  continue;
 | 
			
		||||
			  
 | 
			
		||||
			int16_t DeltaMovement;
 | 
			
		||||
			
 | 
			
		||||
			if (ReportItem->Attributes.BitSize > 8)
 | 
			
		||||
			  DeltaMovement = (int16_t)ReportItem->Value;
 | 
			
		||||
			else
 | 
			
		||||
			  DeltaMovement = (int8_t)ReportItem->Value;
 | 
			
		||||
			int16_t DeltaMovement = (int16_t)(ReportItem->Value << (16 - ReportItem->Attributes.BitSize));
 | 
			
		||||
			
 | 
			
		||||
			/* Determine if the report is for the X or Y delta movement */
 | 
			
		||||
			if (ReportItem->Attributes.Usage.Usage == USAGE_X)
 | 
			
		||||
 | 
			
		||||
@ -113,6 +113,8 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData, uint16_t ReportSize, HID
 | 
			
		||||
				break;
 | 
			
		||||
			case (TYPE_GLOBAL | TAG_GLOBAL_REPORTID):
 | 
			
		||||
				CurrStateTable->ReportID                    = ReportItemData;
 | 
			
		||||
				BitOffsetIn = 0;
 | 
			
		||||
				BitOffsetOut = 0;
 | 
			
		||||
				break;
 | 
			
		||||
			case (TYPE_LOCAL | TAG_LOCAL_USAGE):
 | 
			
		||||
				if (UsageStackSize == HID_USAGE_STACK_DEPTH)
 | 
			
		||||
 | 
			
		||||
@ -73,6 +73,8 @@
 | 
			
		||||
  *  - Fixed Mouse/Keyboard demos not performing the correct arithmetic on the Idle period at the right times (thanks to Brian Dickman)
 | 
			
		||||
  *  - Fixed GenericHID failing HID class tests due to incorrect Logical Minimum and Logical Maximum values (thanks to Søren Greiner)
 | 
			
		||||
  *  - Fixed incorrect PIPE_EPNUM_MASK mask causing pipe failures on devices with endpoint addresses of 8 and above (thanks to John Andrews)
 | 
			
		||||
  *  - Fixed report data alignment issues in the MouseHostWithParser demo when X and Y movement data size is not a multiple of 8 bits
 | 
			
		||||
  *  - Fixed HID Report Descriptor Parser not correctly resetting internal states when a REPORT ID element is encountered
 | 
			
		||||
  *
 | 
			
		||||
  *
 | 
			
		||||
  *  \section Sec_ChangeLog090605 Version 090605
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user