Fix warning about possible string truncation in the TempDataLogger project.
[pub/USBasp.git] / Demos / Host / ClassDriver / MouseHostWithParser / MouseHostWithParser.c
index b73808b..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)
@@ -259,7 +266,7 @@ void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode,
  *
  *  \param[in] CurrentItem  Pointer to the item the HID report parser is currently working with
  *
  *
  *  \param[in] CurrentItem  Pointer to the item the HID report parser is currently working with
  *
- *  \return Boolean true if the item should be stored into the HID report structure, false if it should be discarded
+ *  \return Boolean \c true if the item should be stored into the HID report structure, \c false if it should be discarded
  */
 bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* const CurrentItem)
 {
  */
 bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* const CurrentItem)
 {