fork of PCE focusing on macplus, supporting DaynaPort SCSI network emulation
at master 202 lines 4.7 kB view raw
1/***************************************************************************** 2 * pce * 3 *****************************************************************************/ 4 5/***************************************************************************** 6 * File name: src/drivers/video/keys.h * 7 * Created: 2007-11-25 by Hampa Hug <hampa@hampa.ch> * 8 * Copyright: (C) 2007-2012 Hampa Hug <hampa@hampa.ch> * 9 *****************************************************************************/ 10 11/***************************************************************************** 12 * This program is free software. You can redistribute it and / or modify it * 13 * under the terms of the GNU General Public License version 2 as published * 14 * by the Free Software Foundation. * 15 * * 16 * This program is distributed in the hope that it will be useful, but * 17 * WITHOUT ANY WARRANTY, without even the implied warranty of * 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General * 19 * Public License for more details. * 20 *****************************************************************************/ 21 22 23#ifndef PCE_VIDEO_KEYS_H 24#define PCE_VIDEO_KEYS_H 1 25 26 27typedef enum { 28 PCE_KEY_NONE, 29 30 PCE_KEY_ESC, 31 32 PCE_KEY_F1, 33 PCE_KEY_F2, 34 PCE_KEY_F3, 35 PCE_KEY_F4, 36 PCE_KEY_F5, 37 PCE_KEY_F6, 38 PCE_KEY_F7, 39 PCE_KEY_F8, 40 PCE_KEY_F9, 41 PCE_KEY_F10, 42 PCE_KEY_F11, 43 PCE_KEY_F12, 44 45 PCE_KEY_PRTSCN, 46 PCE_KEY_SCRLK, 47 PCE_KEY_PAUSE, 48 49 PCE_KEY_BACKQUOTE, 50 PCE_KEY_1, 51 PCE_KEY_2, 52 PCE_KEY_3, 53 PCE_KEY_4, 54 PCE_KEY_5, 55 PCE_KEY_6, 56 PCE_KEY_7, 57 PCE_KEY_8, 58 PCE_KEY_9, 59 PCE_KEY_0, 60 PCE_KEY_MINUS, 61 PCE_KEY_EQUAL, 62 PCE_KEY_BACKSPACE, 63 64 PCE_KEY_TAB, 65 PCE_KEY_Q, 66 PCE_KEY_W, 67 PCE_KEY_E, 68 PCE_KEY_R, 69 PCE_KEY_T, 70 PCE_KEY_Y, 71 PCE_KEY_U, 72 PCE_KEY_I, 73 PCE_KEY_O, 74 PCE_KEY_P, 75 PCE_KEY_LBRACKET, 76 PCE_KEY_RBRACKET, 77 PCE_KEY_RETURN, 78 79 PCE_KEY_CAPSLOCK, 80 PCE_KEY_A, 81 PCE_KEY_S, 82 PCE_KEY_D, 83 PCE_KEY_F, 84 PCE_KEY_G, 85 PCE_KEY_H, 86 PCE_KEY_J, 87 PCE_KEY_K, 88 PCE_KEY_L, 89 PCE_KEY_SEMICOLON, 90 PCE_KEY_QUOTE, 91 PCE_KEY_BACKSLASH, 92 93 PCE_KEY_LSHIFT, 94 PCE_KEY_LESS, 95 PCE_KEY_Z, 96 PCE_KEY_X, 97 PCE_KEY_C, 98 PCE_KEY_V, 99 PCE_KEY_B, 100 PCE_KEY_M, 101 PCE_KEY_N, 102 PCE_KEY_COMMA, 103 PCE_KEY_PERIOD, 104 PCE_KEY_SLASH, 105 PCE_KEY_RSHIFT, 106 107 PCE_KEY_LCTRL, 108 PCE_KEY_LSUPER, 109 PCE_KEY_LMETA, 110 PCE_KEY_MODE, 111 PCE_KEY_LALT, 112 PCE_KEY_SPACE, 113 PCE_KEY_RALT, 114 PCE_KEY_RMETA, 115 PCE_KEY_RSUPER, 116 PCE_KEY_MENU, 117 PCE_KEY_RCTRL, 118 119 PCE_KEY_NUMLOCK, 120 PCE_KEY_KP_SLASH, 121 PCE_KEY_KP_STAR, 122 PCE_KEY_KP_MINUS, 123 PCE_KEY_KP_7, 124 PCE_KEY_KP_8, 125 PCE_KEY_KP_9, 126 PCE_KEY_KP_PLUS, 127 PCE_KEY_KP_4, 128 PCE_KEY_KP_5, 129 PCE_KEY_KP_6, 130 PCE_KEY_KP_1, 131 PCE_KEY_KP_2, 132 PCE_KEY_KP_3, 133 PCE_KEY_KP_ENTER, 134 PCE_KEY_KP_0, 135 PCE_KEY_KP_PERIOD, 136 137 PCE_KEY_INS, 138 PCE_KEY_HOME, 139 PCE_KEY_PAGEUP, 140 PCE_KEY_DEL, 141 PCE_KEY_END, 142 PCE_KEY_PAGEDN, 143 PCE_KEY_UP, 144 PCE_KEY_LEFT, 145 PCE_KEY_DOWN, 146 PCE_KEY_RIGHT, 147 148 PCE_KEY_EXTRA1, 149 PCE_KEY_EXTRA2, 150 PCE_KEY_EXTRA3, 151 PCE_KEY_EXTRA4, 152 PCE_KEY_EXTRA5, 153 PCE_KEY_EXTRA6, 154 PCE_KEY_EXTRA7, 155 PCE_KEY_EXTRA8, 156 PCE_KEY_EXTRA9, 157 PCE_KEY_EXTRA10, 158 PCE_KEY_EXTRA11, 159 PCE_KEY_EXTRA12, 160 PCE_KEY_EXTRA13, 161 PCE_KEY_EXTRA14, 162 PCE_KEY_EXTRA15, 163 PCE_KEY_EXTRA16 164} pce_key_t; 165 166 167#define PCE_KEY_EVENT_DOWN 1 168#define PCE_KEY_EVENT_UP 2 169#define PCE_KEY_EVENT_MAGIC 3 170 171 172typedef struct { 173 unsigned short event; 174 pce_key_t key; 175} pce_key_evt_t; 176 177 178/*!*************************************************************************** 179 * @short Convert a string to a PCE key symbol 180 * @param str A key name 181 * @return The PCE key symbol or PCE_KEY_NONE if the key is not found 182 *****************************************************************************/ 183pce_key_t pce_key_from_string (const char *str); 184 185/*!*************************************************************************** 186 * @short Convert a PCE key symbol to a string 187 * @param key A PCE key symbol 188 * @return The key name or NULL 189 *****************************************************************************/ 190const char *pce_key_to_string (pce_key_t key); 191 192/*!*************************************************************************** 193 * @short Get a PCE key map 194 * @param map A string of the form "<integer> = <pce key name>" 195 * @retval src The integer part of the mapping 196 * @retval dst The PCE key name part of the mapping 197 * @return Non-zero on error 198 *****************************************************************************/ 199int pce_key_get_map (const char *map, unsigned long *src, pce_key_t *dst); 200 201 202#endif