From 044ad7c3987460ede48ff27afd6bdb0ca05a0432 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 4 Jul 2011 20:52:54 +0200 Subject: import at91lib from at91lib_20100901_softpack_1_9_v_1_0_svn_v15011 it's sad to see that atmel doesn't publish their svn repo or has a centralized location or even puts proper version/release info into the library itself --- usb/common/hid/HIDKeypad.h | 276 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 276 insertions(+) create mode 100644 usb/common/hid/HIDKeypad.h (limited to 'usb/common/hid/HIDKeypad.h') diff --git a/usb/common/hid/HIDKeypad.h b/usb/common/hid/HIDKeypad.h new file mode 100644 index 0000000..06ad747 --- /dev/null +++ b/usb/common/hid/HIDKeypad.h @@ -0,0 +1,276 @@ +/* ---------------------------------------------------------------------------- + * ATMEL Microcontroller Software Support + * ---------------------------------------------------------------------------- + * Copyright (c) 2008, 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. + * ---------------------------------------------------------------------------- + */ + +/** + \unit + +!!!Purpose + + Definitions of constants and methods for the HID keypad usage page. + + !!!Usage + + -# Use the constants declared in this file when instanciating a + Report descriptor instance. + -# When implementing the functionality of an HID keyboard, use the + key codes defined here to indicate keys that are being pressed and + released. +*/ + +#ifndef HIDKEYPAD_H +#define HIDKEYPAD_H + +//------------------------------------------------------------------------------ +// Constants +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +/// \page "HID Keypad Page ID" +/// This page lists HID Keypad page ID. +/// +/// !ID +/// - HIDKeypad_PAGEID + +/// Identifier for the HID keypad usage page +#define HIDKeypad_PAGEID 0x07 +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +/// \page "HID Alphabetic Keys" +/// ... +/// +/// !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 +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +/// \page "HID Numeric Keys" +/// ... +/// +/// !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 +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +/// \page "HID Special Keys" +/// ... +/// +/// !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 +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +/// \page "HID Modified Keys" +/// ... +/// +/// !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 +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +/// \page "HID Error Codes" +/// ... +/// +/// !Codes +/// - HIDKeypad_ERRORROLLOVER +/// - HIDKeypad_POSTFAIL +/// - HIDKeypad_ERRORUNDEFINED + +/// Indicates that too many keys have been pressed at the same time. +#define HIDKeypad_ERRORROLLOVER 1 +/// ? +#define HIDKeypad_POSTFAIL 2 +/// Indicates an undefined error. +#define HIDKeypad_ERRORUNDEFINED 3 +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +// Exported functions +//------------------------------------------------------------------------------ + +extern unsigned char HIDKeypad_IsModifierKey(unsigned char key); + +#endif //#ifndef HIDKEYPAD_H + -- cgit v1.2.3