fork of PCE focusing on macplus, supporting DaynaPort SCSI network emulation
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