HIDReport.h 3.51 KB
 Dean Camera committed May 08, 2010 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 /* LUFA Library Copyright (C) Dean Camera, 2010. dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ /* Copyright 2010 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 without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this permission notice and warranty disclaimer appear in supporting documentation, and that the name of the author not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this software, including all implied warranties of merchantability and fitness. In no event shall the author be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use or performance of this software. */ /** \file * * Header file for HIDReport.c. */ #ifndef _HID_REPORT_H_ #define _HID_REPORT_H_ /* Includes: */ #include #include #include "MouseHostWithParser.h" /* Macros: */  Dean Camera committed Jun 03, 2010 46  /** HID Report Descriptor Usage for a Mouse. */  Dean Camera committed May 08, 2010 47 48  #define USAGE_MOUSE 0x02  Dean Camera committed Jun 03, 2010 49  /** HID Report Descriptor Usage Page value for a toggle button. */  Dean Camera committed May 08, 2010 50 51  #define USAGE_PAGE_BUTTON 0x09  Dean Camera committed Jun 03, 2010 52  /** HID Report Descriptor Usage Page value for a Generic Desktop Control. */  Dean Camera committed May 08, 2010 53 54  #define USAGE_PAGE_GENERIC_DCTRL 0x01  Dean Camera committed Jun 03, 2010 55  /** HID Report Descriptor Usage value for a X axis movement. */  Dean Camera committed May 08, 2010 56 57  #define USAGE_X 0x30  Dean Camera committed Jun 03, 2010 58  /** HID Report Descriptor Usage value for a Y axis movement. */  Dean Camera committed May 08, 2010 59 60  #define USAGE_Y 0x31  Dean Camera committed Jun 03, 2010 61  /** HID Report Descriptor Usage value for a Scroll Wheel movement. */  Dean Camera committed May 08, 2010 62 63 64  #define USAGE_SCROLL_WHEEL 0x38 /* Enums: */  Dean Camera committed Jun 03, 2010 65  /** Enum for the possible return codes of the \ref GetHIDReportData() function. */  Dean Camera committed May 08, 2010 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97  enum MouseHostWithParser_GetHIDReportDataCodes_t { ParseSuccessful = 0, /**< HID report descriptor parsed successfully */ ParseError = 1, /**< Failed to fully process the HID report descriptor */ ParseControlError = 2, /**< Control error occurred while trying to read the device HID descriptor */ }; /* Type Defines: */ /** Type define for a HID descriptor. */ typedef struct { USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length */ uint16_t HIDSpec; /**< Implemented HID class specification, in BCD encoded format */ uint8_t CountryCode; /**< Country code value for localized hardware */ uint8_t TotalHIDDescriptors; /**< Total number of HID report descriptors in the current interface */ uint8_t HIDReportType; /**< HID report type of the first HID report descriptor */ uint16_t HIDReportLength; /**< Total size in bytes of the first HID report descriptor */ } USB_Descriptor_HID_t; /* External Variables: */ extern uint16_t HIDReportSize; extern HID_ReportInfo_t HIDReportInfo; /* Function Prototypes: */ uint8_t GetHIDReportData(void); bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem); #endif