From df16148a027bc28efc3e99baf91d1c4a35e6dbb1 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Mon, 14 Mar 2016 20:37:49 +1100 Subject: Only indicate when the left mouse button is pressed in the MouseHostWithParser host demo. --- Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'Demos') diff --git a/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c b/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c index f7c9cee32..4e62975dd 100644 --- a/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c +++ b/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c @@ -132,13 +132,17 @@ void MouseHost_Task(void) if ((ReportItem->Attributes.Usage.Page == USAGE_PAGE_BUTTON) && (ReportItem->ItemType == HID_REPORT_ITEM_In)) { - if (ReportItem->Value) + /* Buttons are numbered sequentially in their HID usages, button 1 is the left mouse button */ + uint8_t ButtonID = ReportItem->Attributes.Usage.Usage; + + if ((ButtonID == 1) && (ReportItem->Value != 0)) LEDMask = LEDS_ALL_LEDS; } else if ((ReportItem->Attributes.Usage.Page == USAGE_PAGE_GENERIC_DCTRL) && (ReportItem->Attributes.Usage.Usage == USAGE_SCROLL_WHEEL) && (ReportItem->ItemType == HID_REPORT_ITEM_In)) { + /* Convert wheel data to a 16-bit signed value */ int16_t WheelDelta = HID_ALIGN_DATA(ReportItem, int16_t); if (WheelDelta) @@ -149,6 +153,7 @@ void MouseHost_Task(void) (ReportItem->Attributes.Usage.Usage == USAGE_Y)) && (ReportItem->ItemType == HID_REPORT_ITEM_In)) { + /* Convert X/Y movement to 16-bit signed value */ int16_t DeltaMovement = HID_ALIGN_DATA(ReportItem, int16_t); if (DeltaMovement) -- cgit v1.2.3