/* * ============================================================================ * Title: Controller pads and Keyboard. * Author: J. Zbiciak * $Id$ * ============================================================================ * This module implements the ECS keyboard, which hooks to the controller * pads. * ============================================================================ */ #ifndef PADS_KEYBOARD_H_ #define PADS_KEYBOARD_H_ /* ======================================================================== */ /* The following enum maps symbolic names for each pseudo-key we support. */ /* Pseudo-keys fall into three classes: */ /* */ /* -- Directly mapped keys. These are keys on the PC keyboard that */ /* exactly map to the ECS keyboard. */ /* */ /* -- Pseudo keys. These keys on the PC side map to some key combo on */ /* the ECS keyboard. Example: The PC's single-quote/double-quote */ /* key maps to either [SHIFT]-[LEFT] or [SHIFT]-[2] depending on */ /* whether the PC's shift key is pressed. */ /* */ /* -- Extra keys. These keys did not exist on the ECS keyboard. They */ /* are only useful with a patched ECS ROM. */ /* ======================================================================== */ typedef enum { /* -------------------------------------------------------------------- */ /* Direct Mappings. */ /* -------------------------------------------------------------------- */ ECSKEY_1_EQUAL = 0, ECSKEY_2_DQUOTE, ECSKEY_3_HASH, ECSKEY_4_DOLLAR, ECSKEY_5_PLUS, ECSKEY_6_MINUS, ECSKEY_7_SLASH, ECSKEY_8_STAR, ECSKEY_9_LPAREN, ECSKEY_0_RPAREN, ECSKEY_ESC, ECSKEY_CTL, ECSKEY_Q, ECSKEY_W, ECSKEY_E, ECSKEY_R, ECSKEY_T, ECSKEY_Y, ECSKEY_U, ECSKEY_I, ECSKEY_O, ECSKEY_P, ECSKEY_UP_CARET, ECSKEY_A, ECSKEY_S, ECSKEY_D, ECSKEY_F, ECSKEY_G, ECSKEY_H, ECSKEY_J, ECSKEY_K, ECSKEY_L, ECSKEY_SEMI_COLON, ECSKEY_LEFT_PERCENT, ECSKEY_RIGHT_SQUOTE, ECSKEY_Z, ECSKEY_X, ECSKEY_C, ECSKEY_V, ECSKEY_B, ECSKEY_N, ECSKEY_M, ECSKEY_COMMA_LTHAN, ECSKEY_PERIOD_GTHAN, ECSKEY_DOWN_QUESTION, ECSKEY_SHIFT, ECSKEY_SPACE, ECSKEY_RTN /* -------------------------------------------------------------------- */ /* Pseudo Keys. */ /* -------------------------------------------------------------------- */ ECSKEY_1, ECSKEY_2, ECSKEY_3, ECSKEY_4, ECSKEY_5, ECSKEY_6, ECSKEY_7, ECSKEY_8, ECSKEY_9, ECSKEY_0, ECSKEY_EQUAL, ECSKEY_DQUOTE, ECSKEY_HASH, ECSKEY_DOLLAR, ECSKEY_PLUS, ECSKEY_MINUS, ECSKEY_SLASH, ECSKEY_STAR, ECSKEY_LPAREN, ECSKEY_RPAREN, ECSKEY_SEMI, ECSKEY_COLON, ECSKEY_UP, ECSKEY_CARET, ECSKEY_LEFT, ECSKEY_RIGHT, ECSKEY_DOWN, ECSKEY_PERCENT, ECSKEY_SQUOTE, ECSKEY_QUESTION, ECSKEY_COMMA, ECSKEY_GTHAN, ECSKEY_PERIOD, ECSKEY_LTHAN, /* -------------------------------------------------------------------- */ /* Extra Keys -- These don't exist on the real ECS Keyboard. */ /* -------------------------------------------------------------------- */ ECSKEY_AT, ECSKEY_AND, ECSKEY_UNDER, ECSKEY_SLASH, ECSKEY_BSLASH, ECSKEY_TILDE, ECSKEY_PIPE, ECSKEY_LBRACKET, ECSKEY_RBRACKET, ECSKEY_LBRACE, ECSKEY_RBRACE, ECSKEY_EXCLAIM, ECSKEY_TAB } ecskey_t; #endif /* ======================================================================== */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* ======================================================================== */ /* Copyright (c) 2003-+Inf, Joseph Zbiciak */ /* ======================================================================== */