| /* ----------------------------------------------------------------------- * |
| * |
| * Copyright 2004-2008 H. Peter Anvin - All Rights Reserved |
| * |
| * Permission is hereby granted, free of charge, to any person |
| * obtaining a copy of this software and associated documentation |
| * files (the "Software"), to deal in the Software without |
| * restriction, including without limitation the rights to use, |
| * copy, modify, merge, publish, distribute, sublicense, and/or |
| * sell copies of the Software, and to permit persons to whom |
| * the Software is furnished to do so, subject to the following |
| * conditions: |
| * |
| * The above copyright notice and this permission notice shall |
| * be included in all copies or substantial portions of the Software. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
| * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
| * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
| * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
| * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
| * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
| * OTHER DEALINGS IN THE SOFTWARE. |
| * |
| * ----------------------------------------------------------------------- */ |
| |
| /* |
| * getkey.h |
| * |
| * Function to get a key symbol and parse it |
| */ |
| |
| #ifndef LIBUTIL_GETKEY_H |
| #define LIBUTIL_GETKEY_H |
| |
| #include <stdio.h> |
| #include <unistd.h> |
| #include <sys/times.h> |
| |
| #ifndef CLK_TCK |
| # define CLK_TCK sysconf(_SC_CLK_TCK) |
| #endif |
| |
| #define KEY_NONE (-1) |
| |
| #define KEY_CTRL(x) ((x) & 0x001f) |
| #define KEY_BACKSPACE 0x0008 |
| #define KEY_TAB 0x0009 |
| #define KEY_ENTER 0x000d |
| #define KEY_ESC 0x001b |
| #define KEY_DEL 0x007f |
| |
| #define KEY_F1 0x0100 |
| #define KEY_F2 0x0101 |
| #define KEY_F3 0x0102 |
| #define KEY_F4 0x0103 |
| #define KEY_F5 0x0104 |
| #define KEY_F6 0x0105 |
| #define KEY_F7 0x0106 |
| #define KEY_F8 0x0107 |
| #define KEY_F9 0x0108 |
| #define KEY_F10 0x0109 |
| #define KEY_F11 0x010A |
| #define KEY_F12 0x010B |
| |
| #define KEY_UP 0x0120 |
| #define KEY_DOWN 0x0121 |
| #define KEY_LEFT 0x0122 |
| #define KEY_RIGHT 0x0123 |
| #define KEY_PGUP 0x0124 |
| #define KEY_PGDN 0x0125 |
| #define KEY_HOME 0x0126 |
| #define KEY_END 0x0127 |
| #define KEY_INSERT 0x0128 |
| #define KEY_DELETE 0x0129 |
| |
| #define KEY_MAX 0x012a |
| |
| #define KEY_MAXLEN 8 |
| |
| int get_key(FILE *, clock_t); |
| int key_name_to_code(const char *); |
| const char *key_code_to_name(int); |
| int get_key_decode(char *, int, int *); |
| |
| #endif /* LIBUTIL_GETKEY_H */ |