/* ---------------------------------------------------------------------------- * ATMEL Microcontroller Software Support * ---------------------------------------------------------------------------- * Copyright (c) 2010, Atmel Corporation * * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the disclaimer below. * * Atmel's name may not be used to endorse or promote products derived from * this software without specific prior written permission. * * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ---------------------------------------------------------------------------- */ /**\file * * \section Purpose * * Definitions used for declaring the usages of a HID device. * */ #ifndef _HIDUSAGES_H_ #define _HIDUSAGES_H_ /** \addtogroup usb_hid *@{ */ /*---------------------------------------------------------------------------- * Includes *----------------------------------------------------------------------------*/ #include /*---------------------------------------------------------------------------- * Defines *----------------------------------------------------------------------------*/ /** \addtogroup usb_hid_usage_pages HID Usage Pages' IDs * @{ * (HUT section 3) */ /** ID for the HID Generic Desktop Controls. */ #define HIDUsage_GENERICDESKTOP 1 /** ID for the HID Game Controls. */ #define HIDUsage_GAME 5 /** ID for the HID Generic Device Controls. */ #define HIDUsage_GENERICDEVICE 6 /** ID for the HID Keyboard/Keypad */ #define HIDUsage_KEYBOARD 7 /** ID for the HID LEDs. */ #define HIDUsage_LEDS 8 /** ID for the HID buttons. */ #define HIDUsage_BUTTON 9 /** ID for Bar Code Scanner page. */ #define HIDUsage_BARCODE 0x8C /** ID for Camera Control Page. */ #define HIDUsage_CAMERA 0x90 /** ID for vendor-defined controls. */ #define HIDUsage_VENDOR 0xFF /** @}*/ /** \addtogroup usb_hid_genericdesktop_page_id HID GenericDesktop Page ID * @{ * * \section ID * - HIDGenericDesktop_PAGEID */ /** ID for the HID generic desktop usage page. */ #define HIDGenericDesktop_PAGEID 0x01 /** @}*/ /** \addtogroup usb_hid_genericdesktop_usages HID GenericDesktop Usages * @{ * * \section Usages * - HIDGenericDesktop_POINTER * - HIDGenericDesktop_MOUSE * - HIDGenericDesktop_JOYSTICK * - HIDGenericDesktop_GAMEPAD * - HIDGenericDesktop_KEYBOARD * - HIDGenericDesktop_KEYPAD * - HIDGenericDesktop_MULTIAXIS * - HIDGenericDesktop_X * - HIDGenericDesktop_Y */ /** Pointer usage ID. */ #define HIDGenericDesktop_POINTER 0x01 /** Mouse usage ID. */ #define HIDGenericDesktop_MOUSE 0x02 /** Joystick usage ID. */ #define HIDGenericDesktop_JOYSTICK 0x04 /** Gamepad usage ID. */ #define HIDGenericDesktop_GAMEPAD 0x05 /** Keyboard usage ID. */ #define HIDGenericDesktop_KEYBOARD 0x06 /** Keypad usage ID. */ #define HIDGenericDesktop_KEYPAD 0x07 /** Multi-axis controller usage ID. */ #define HIDGenericDesktop_MULTIAXIS 0x08 /** Axis Usage X direction ID. */ #define HIDGenericDesktop_X 0x30 /** Axis Usage Y direction ID. */ #define HIDGenericDesktop_Y 0x31 /** @}*/ /** \addtogroup usb_hid_keypad_page_id HID Keypad Page ID * @{ * This page lists HID Keypad page ID. * * \section ID * - HIDKeypad_PAGEID */ /** Identifier for the HID keypad usage page */ #define HIDKeypad_PAGEID 0x07 /** @}*/ /** \addtogroup usb_hid_alphabetic_keys HID Alphabetic Keys * @{ * * \section Keys * - HIDKeypad_A * - HIDKeypad_B * - HIDKeypad_C * - HIDKeypad_D * - HIDKeypad_E * - HIDKeypad_F * - HIDKeypad_G * - HIDKeypad_H * - HIDKeypad_I * - HIDKeypad_J * - HIDKeypad_K * - HIDKeypad_L * - HIDKeypad_M * - HIDKeypad_N * - HIDKeypad_O * - HIDKeypad_P * - HIDKeypad_Q * - HIDKeypad_R * - HIDKeypad_S * - HIDKeypad_T * - HIDKeypad_U * - HIDKeypad_V * - HIDKeypad_W * - HIDKeypad_X * - HIDKeypad_Y * - HIDKeypad_Z */ /** Key code for 'a' and 'A'. */ #define HIDKeypad_A 4 /** Key code for 'b' and 'B'. */ #define HIDKeypad_B 5 /** Key code for 'c' and 'C'. */ #define HIDKeypad_C 6 /** Key code for 'd' and 'D'. */ #define HIDKeypad_D 7 /** Key code for 'e' and 'E'. */ #define HIDKeypad_E 8 /** Key code for 'f' and 'F'. */ #define HIDKeypad_F 9 /** Key code for 'g' and 'G'. */ #define HIDKeypad_G 10 /** Key code for 'h' and 'H'. */ #define HIDKeypad_H 11 /** Key code for 'i' and 'I'. */ #define HIDKeypad_I 12 /** Key code for 'j' and 'J'. */ #define HIDKeypad_J 13 /** Key code for 'k' and 'K'. */ #define HIDKeypad_K 14 /** Key code for 'l' and 'L'. */ #define HIDKeypad_L 15 /** Key code for 'm' and 'M'. */ #define HIDKeypad_M 16 /** Key code for 'n' and 'N'. */ #define HIDKeypad_N 17 /** Key code for 'o' and 'O'. */ #define HIDKeypad_O 18 /** Key code for 'p' and 'P'. */ #define HIDKeypad_P 19 /** Key code for 'q' and 'Q'. */ #define HIDKeypad_Q 20 /** Key code for 'r' and 'R'. */ #define HIDKeypad_R 21 /** Key code for 's' and 'S'. */ #define HIDKeypad_S 22 /** Key code for 't' and 'T'. */ #define HIDKeypad_T 23 /** Key code for 'u' and 'U'. */ #define HIDKeypad_U 24 /** Key code for 'v' and 'V'. */ #define HIDKeypad_V 25 /** Key code for 'w' and 'W'. */ #define HIDKeypad_W 26 /** Key code for 'x' and 'X'. */ #define HIDKeypad_X 27 /** Key code for 'y' and 'Y'. */ #define HIDKeypad_Y 28 /** Key code for 'z' and 'Z'. */ #define HIDKeypad_Z 29 /** @}*/ /** \addtogroup usb_hid_numeric_keys HID Numeric Keys * @{ * * \section Keys * - HIDKeypad_1 * - HIDKeypad_2 * - HIDKeypad_3 * - HIDKeypad_4 * - HIDKeypad_5 * - HIDKeypad_6 * - HIDKeypad_7 * - HIDKeypad_8 * - HIDKeypad_9 * - HIDKeypad_0 */ /** Key code for '1' and '!'. */ #define HIDKeypad_1 30 /** Key code for '2' and '@'. */ #define HIDKeypad_2 31 /** Key code for '3' and '#'. */ #define HIDKeypad_3 32 /** Key code for '4' and '$'. */ #define HIDKeypad_4 33 /** Key code for '5' and '%'. */ #define HIDKeypad_5 34 /** Key code for '6' and '^'. */ #define HIDKeypad_6 35 /** Key code for '7' and '&'. */ #define HIDKeypad_7 36 /** Key code for '8' and '*'. */ #define HIDKeypad_8 37 /** Key code for '9' and '('. */ #define HIDKeypad_9 38 /** Key code for '0' and ')'. */ #define HIDKeypad_0 39 /** @}*/ /** \addtogroup usb_hid_special_keys HID Special Keys * @{ * * \section Keys * - HIDKeypad_ENTER * - HIDKeypad_ESCAPE * - HIDKeypad_BACKSPACE * - HIDKeypad_TAB * - HIDKeypad_SPACEBAR * - HIDKeypad_PRINTSCREEN * - HIDKeypad_SCROLLLOCK * - HIDKeypad_NUMLOCK */ /** Enter key code. */ #define HIDKeypad_ENTER 40 /** Escape key code. */ #define HIDKeypad_ESCAPE 41 /** Backspace key code. */ #define HIDKeypad_BACKSPACE 42 /** Tab key code. */ #define HIDKeypad_TAB 43 /** Spacebar key code. */ #define HIDKeypad_SPACEBAR 44 /** Printscreen key code. */ #define HIDKeypad_PRINTSCREEN 70 /** Scroll lock key code. */ #define HIDKeypad_SCROLLLOCK 71 /** Num lock key code. */ #define HIDKeypad_NUMLOCK 83 /** @}*/ /** \addtogroup usb_hid_modified_keys HID Modified Keys * @{ * * \section Keys * - HIDKeypad_LEFTCONTROL * - HIDKeypad_LEFTSHIFT * - HIDKeypad_LEFTALT * - HIDKeypad_LEFTGUI * - HIDKeypad_RIGHTCONTROL * - HIDKeypad_RIGHTSHIFT * - HIDKeypad_RIGHTALT * - HIDKeypad_RIGHTGUI */ /** Key code for the left 'Control' key. */ #define HIDKeypad_LEFTCONTROL 224 /** Key code for the left 'Shift' key. */ #define HIDKeypad_LEFTSHIFT 225 /** Key code for the left 'Alt' key. */ #define HIDKeypad_LEFTALT 226 /** Key code for the left 'GUI' (e.g. Windows) key. */ #define HIDKeypad_LEFTGUI 227 /** Key code for the right 'Control' key. */ #define HIDKeypad_RIGHTCONTROL 228 /** Key code for the right 'Shift' key. */ #define HIDKeypad_RIGHTSHIFT 229 /** Key code for the right 'Alt' key. */ #define HIDKeypad_RIGHTALT 230 /** Key code for the right 'GUI' key. */ #define HIDKeypad_RIGHTGUI 231 /** @}*/ /** \addtogroup usb_hid_error_codes HID Error Codes * @{ * * \section Codes * - HIDKeypad_ERRORROLLOVER * - HIDKeypad_POSTFAIL * - HIDKeypad_ERRORUNDEFINED */ /** Indicates that too many keys have been pressed at the same time. */ #define HIDKeypad_ERRORROLLOVER 1 /** postfail */ #define HIDKeypad_POSTFAIL 2 /** Indicates an undefined error. */ #define HIDKeypad_ERRORUNDEFINED 3 /** @}*/ /** \addtogroup usb_hid_leds_page_id HID LEDs Page ID * @{ * This page lists the page ID of the HID LEDs usage page. * * \section ID * - HIDLeds_PAGEID */ /** ID of the HID LEDs usage page. */ #define HIDLeds_PAGEID 0x08 /** @}*/ /** \addtogroup usb_hid_leds_usage HID LEDs Usages * @{ * This page lists the Usages of the HID LEDs. * * \section Usages * - HIDLeds_NUMLOCK * - HIDLeds_CAPSLOCK * - HIDLeds_SCROLLLOCK */ /** Num lock LED usage. */ #define HIDLeds_NUMLOCK 0x01 /** Caps lock LED usage. */ #define HIDLeds_CAPSLOCK 0x02 /** Scroll lock LED usage. */ #define HIDLeds_SCROLLLOCK 0x03 /** @}*/ /** \addtogroup usb_hid_buttons_page_id HID BUTTONs Page ID * @{ */ /** Identifier for the HID button usage page*/ #define HIDButton_PAGEID 0x09 /** @}*/ /*------------------------------------------------------------------------------ * Exported functions *------------------------------------------------------------------------------*/ extern uint8_t HIDKeypad_IsModifierKey(uint8_t key); /**@}*/ #endif /* #define _HIDUSAGES_H_ */