Fix warning about possible string truncation in the TempDataLogger project.
[pub/USBasp.git] / Demos / Host / ClassDriver / MouseHostWithParser / MouseHostWithParser.c
index 0ecab53..c6937f4 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2013.
+     Copyright (C) Dean Camera, 2018.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
 
   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
 
   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)
 {
 /** 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);
        /* 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);
 
        /* 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->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))
                        {
                                  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)
                                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))
                        {
                                  (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)
                                int16_t DeltaMovement = HID_ALIGN_DATA(ReportItem, int16_t);
 
                                if (DeltaMovement)