X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/03cdb09071c5c9ed9dd0f851a0980d360a4492d0..106f0eee17bbe837c9f94bdcf13d28e2952f1aef:/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c diff --git a/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c b/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c index 0ecab535f..c6937f4ad 100644 --- a/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c +++ b/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c @@ -1,13 +1,13 @@ /* LUFA Library - Copyright (C) Dean Camera, 2013. + Copyright (C) Dean Camera, 2018. dean [at] fourwalledcubicle [dot] com www.lufa-lib.org */ /* - Copyright 2013 Dean Camera (dean [at] fourwalledcubicle [dot] com) + Copyright 2018 Dean Camera (dean [at] fourwalledcubicle [dot] com) Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted @@ -87,12 +87,14 @@ int main(void) /** Configures the board hardware and chip peripherals for the demo's functionality. */ void SetupHardware(void) { +#if (ARCH == ARCH_AVR8) /* Disable watchdog if enabled by bootloader/fuses */ MCUSR &= ~(1 << WDRF); wdt_disable(); /* Disable clock division */ clock_prescale_set(clock_div_1); +#endif /* Hardware Initialization */ Serial_Init(9600, false); @@ -130,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) @@ -147,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)