]> git.jsancho.org Git - guile-irrlicht.git/blob - src/keycodes.cpp
get-fps
[guile-irrlicht.git] / src / keycodes.cpp
1 /* guile-irrlicht --- GNU Guile bindings for Irrlicht Engine
2
3    Copyright (C) 2020 Javier Sancho <jsf@jsancho.org>
4
5    This file is part of guile-irrlicht.
6
7    guile-irrlicht is free software; you can redistribute it and/or modify
8    it under the terms of the GNU Lesser General Public License as
9    published by the Free Software Foundation; either version 3 of the
10    License, or (at your option) any later version.
11
12    guile-irrlicht is distributed in the hope that it will be useful, but
13    WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15    General Public License for more details.
16
17    You should have received a copy of the GNU Lesser General Public
18    License along with guile-irrlicht. If not, see
19    <http://www.gnu.org/licenses/>.
20 */
21
22 #include <irrlicht/irrlicht.h>
23 #include <libguile.h>
24
25 using namespace irr;
26
27 SCM
28 scm_from_key_code (EKEY_CODE key_code)
29 {
30   switch (key_code)
31     {
32     case KEY_LBUTTON:
33       return scm_from_utf8_symbol ("lbutton");
34       break;
35
36     case KEY_RBUTTON:
37       return scm_from_utf8_symbol ("rbutton");
38       break;
39
40     case KEY_CANCEL:
41       return scm_from_utf8_symbol ("cancel");
42       break;
43
44     case KEY_MBUTTON:
45       return scm_from_utf8_symbol ("mbutton");
46       break;
47
48     case KEY_XBUTTON1:
49       return scm_from_utf8_symbol ("xbutton1");
50       break;
51
52     case KEY_XBUTTON2:
53       return scm_from_utf8_symbol ("xbutton2");
54       break;
55
56     case KEY_BACK:
57       return scm_from_utf8_symbol ("back");
58       break;
59
60     case KEY_TAB:
61       return scm_from_utf8_symbol ("tab");
62       break;
63
64     case KEY_CLEAR:
65       return scm_from_utf8_symbol ("clear");
66       break;
67
68     case KEY_RETURN:
69       return scm_from_utf8_symbol ("return");
70       break;
71
72     case KEY_SHIFT:
73       return scm_from_utf8_symbol ("shift");
74       break;
75
76     case KEY_CONTROL:
77       return scm_from_utf8_symbol ("control");
78       break;
79
80     case KEY_MENU:
81       return scm_from_utf8_symbol ("menu");
82       break;
83
84     case KEY_PAUSE:
85       return scm_from_utf8_symbol ("pause");
86       break;
87
88     case KEY_CAPITAL:
89       return scm_from_utf8_symbol ("capital");
90       break;
91
92     case KEY_KANA:
93       return scm_from_utf8_symbol ("kana");
94       break;
95
96     case KEY_JUNJA:
97       return scm_from_utf8_symbol ("junja");
98       break;
99
100     case KEY_FINAL:
101       return scm_from_utf8_symbol ("final");
102       break;
103
104     case KEY_HANJA:
105       return scm_from_utf8_symbol ("hanja");
106       break;
107
108     case KEY_ESCAPE:
109       return scm_from_utf8_symbol ("escape");
110       break;
111
112     case KEY_CONVERT:
113       return scm_from_utf8_symbol ("convert");
114       break;
115
116     case KEY_NONCONVERT:
117       return scm_from_utf8_symbol ("nonconvert");
118       break;
119
120     case KEY_ACCEPT:
121       return scm_from_utf8_symbol ("accept");
122       break;
123
124     case KEY_MODECHANGE:
125       return scm_from_utf8_symbol ("modechange");
126       break;
127
128     case KEY_SPACE:
129       return scm_from_utf8_symbol ("space");
130       break;
131
132     case KEY_PRIOR:
133       return scm_from_utf8_symbol ("prior");
134       break;
135
136     case KEY_NEXT:
137       return scm_from_utf8_symbol ("next");
138       break;
139
140     case KEY_END:
141       return scm_from_utf8_symbol ("end");
142       break;
143
144     case KEY_HOME:
145       return scm_from_utf8_symbol ("home");
146       break;
147
148     case KEY_LEFT:
149       return scm_from_utf8_symbol ("left");
150       break;
151
152     case KEY_UP:
153       return scm_from_utf8_symbol ("up");
154       break;
155
156     case KEY_RIGHT:
157       return scm_from_utf8_symbol ("right");
158       break;
159
160     case KEY_DOWN:
161       return scm_from_utf8_symbol ("down");
162       break;
163
164     case KEY_SELECT:
165       return scm_from_utf8_symbol ("select");
166       break;
167
168     case KEY_PRINT:
169       return scm_from_utf8_symbol ("print");
170       break;
171
172     case KEY_EXECUT:
173       return scm_from_utf8_symbol ("execut");
174       break;
175
176     case KEY_SNAPSHOT:
177       return scm_from_utf8_symbol ("snapshot");
178       break;
179
180     case KEY_INSERT:
181       return scm_from_utf8_symbol ("insert");
182       break;
183
184     case KEY_DELETE:
185       return scm_from_utf8_symbol ("delete");
186       break;
187
188     case KEY_HELP:
189       return scm_from_utf8_symbol ("help");
190       break;
191
192     case KEY_KEY_0:
193       return scm_from_utf8_symbol ("key-0");
194       break;
195
196     case KEY_KEY_1:
197       return scm_from_utf8_symbol ("key-1");
198       break;
199
200     case KEY_KEY_2:
201       return scm_from_utf8_symbol ("key-2");
202       break;
203
204     case KEY_KEY_3:
205       return scm_from_utf8_symbol ("key-3");
206       break;
207
208     case KEY_KEY_4:
209       return scm_from_utf8_symbol ("key-4");
210       break;
211
212     case KEY_KEY_5:
213       return scm_from_utf8_symbol ("key-5");
214       break;
215
216     case KEY_KEY_6:
217       return scm_from_utf8_symbol ("key-6");
218       break;
219
220     case KEY_KEY_7:
221       return scm_from_utf8_symbol ("key-7");
222       break;
223
224     case KEY_KEY_8:
225       return scm_from_utf8_symbol ("key-8");
226       break;
227
228     case KEY_KEY_9:
229       return scm_from_utf8_symbol ("key-9");
230       break;
231
232     case KEY_KEY_A:
233       return scm_from_utf8_symbol ("key-a");
234       break;
235
236     case KEY_KEY_B:
237       return scm_from_utf8_symbol ("key-b");
238       break;
239
240     case KEY_KEY_C:
241       return scm_from_utf8_symbol ("key-c");
242       break;
243
244     case KEY_KEY_D:
245       return scm_from_utf8_symbol ("key-d");
246       break;
247
248     case KEY_KEY_E:
249       return scm_from_utf8_symbol ("key-e");
250       break;
251
252     case KEY_KEY_F:
253       return scm_from_utf8_symbol ("key-f");
254       break;
255
256     case KEY_KEY_G:
257       return scm_from_utf8_symbol ("key-g");
258       break;
259
260     case KEY_KEY_H:
261       return scm_from_utf8_symbol ("key-h");
262       break;
263
264     case KEY_KEY_I:
265       return scm_from_utf8_symbol ("key-i");
266       break;
267
268     case KEY_KEY_J:
269       return scm_from_utf8_symbol ("key-j");
270       break;
271
272     case KEY_KEY_K:
273       return scm_from_utf8_symbol ("key-k");
274       break;
275
276     case KEY_KEY_L:
277       return scm_from_utf8_symbol ("key-l");
278       break;
279
280     case KEY_KEY_M:
281       return scm_from_utf8_symbol ("key-m");
282       break;
283
284     case KEY_KEY_N:
285       return scm_from_utf8_symbol ("key-n");
286       break;
287
288     case KEY_KEY_O:
289       return scm_from_utf8_symbol ("key-o");
290       break;
291
292     case KEY_KEY_P:
293       return scm_from_utf8_symbol ("key-p");
294       break;
295
296     case KEY_KEY_Q:
297       return scm_from_utf8_symbol ("key-q");
298       break;
299
300     case KEY_KEY_R:
301       return scm_from_utf8_symbol ("key-r");
302       break;
303
304     case KEY_KEY_S:
305       return scm_from_utf8_symbol ("key-s");
306       break;
307
308     case KEY_KEY_T:
309       return scm_from_utf8_symbol ("key-t");
310       break;
311
312     case KEY_KEY_U:
313       return scm_from_utf8_symbol ("key-u");
314       break;
315
316     case KEY_KEY_V:
317       return scm_from_utf8_symbol ("key-v");
318       break;
319
320     case KEY_KEY_W:
321       return scm_from_utf8_symbol ("key-w");
322       break;
323
324     case KEY_KEY_X:
325       return scm_from_utf8_symbol ("key-x");
326       break;
327
328     case KEY_KEY_Y:
329       return scm_from_utf8_symbol ("key-y");
330       break;
331
332     case KEY_KEY_Z:
333       return scm_from_utf8_symbol ("key-z");
334       break;
335
336     case KEY_LWIN:
337       return scm_from_utf8_symbol ("lwin");
338       break;
339
340     case KEY_RWIN:
341       return scm_from_utf8_symbol ("rwin");
342       break;
343
344     case KEY_APPS:
345       return scm_from_utf8_symbol ("apps");
346       break;
347
348     case KEY_SLEEP:
349       return scm_from_utf8_symbol ("sleep");
350       break;
351
352     case KEY_NUMPAD0:
353       return scm_from_utf8_symbol ("numpad0");
354       break;
355
356     case KEY_NUMPAD1:
357       return scm_from_utf8_symbol ("numpad1");
358       break;
359
360     case KEY_NUMPAD2:
361       return scm_from_utf8_symbol ("numpad2");
362       break;
363
364     case KEY_NUMPAD3:
365       return scm_from_utf8_symbol ("numpad3");
366       break;
367
368     case KEY_NUMPAD4:
369       return scm_from_utf8_symbol ("numpad4");
370       break;
371
372     case KEY_NUMPAD5:
373       return scm_from_utf8_symbol ("numpad5");
374       break;
375
376     case KEY_NUMPAD6:
377       return scm_from_utf8_symbol ("numpad6");
378       break;
379
380     case KEY_NUMPAD7:
381       return scm_from_utf8_symbol ("numpad7");
382       break;
383
384     case KEY_NUMPAD8:
385       return scm_from_utf8_symbol ("numpad8");
386       break;
387
388     case KEY_NUMPAD9:
389       return scm_from_utf8_symbol ("numpad9");
390       break;
391
392     case KEY_MULTIPLY:
393       return scm_from_utf8_symbol ("multiply");
394       break;
395
396     case KEY_ADD:
397       return scm_from_utf8_symbol ("add");
398       break;
399
400     case KEY_SEPARATOR:
401       return scm_from_utf8_symbol ("separator");
402       break;
403
404     case KEY_SUBTRACT:
405       return scm_from_utf8_symbol ("subtract");
406       break;
407
408     case KEY_DECIMAL:
409       return scm_from_utf8_symbol ("decimal");
410       break;
411
412     case KEY_DIVIDE:
413       return scm_from_utf8_symbol ("divide");
414       break;
415
416     case KEY_F1:
417       return scm_from_utf8_symbol ("f1");
418       break;
419
420     case KEY_F2:
421       return scm_from_utf8_symbol ("f2");
422       break;
423
424     case KEY_F3:
425       return scm_from_utf8_symbol ("f3");
426       break;
427
428     case KEY_F4:
429       return scm_from_utf8_symbol ("f4");
430       break;
431
432     case KEY_F5:
433       return scm_from_utf8_symbol ("f5");
434       break;
435
436     case KEY_F6:
437       return scm_from_utf8_symbol ("f6");
438       break;
439
440     case KEY_F7:
441       return scm_from_utf8_symbol ("f7");
442       break;
443
444     case KEY_F8:
445       return scm_from_utf8_symbol ("f8");
446       break;
447
448     case KEY_F9:
449       return scm_from_utf8_symbol ("f9");
450       break;
451
452     case KEY_F10:
453       return scm_from_utf8_symbol ("f10");
454       break;
455
456     case KEY_F11:
457       return scm_from_utf8_symbol ("f11");
458       break;
459
460     case KEY_F12:
461       return scm_from_utf8_symbol ("f12");
462       break;
463
464     case KEY_F13:
465       return scm_from_utf8_symbol ("f13");
466       break;
467
468     case KEY_F14:
469       return scm_from_utf8_symbol ("f14");
470       break;
471
472     case KEY_F15:
473       return scm_from_utf8_symbol ("f15");
474       break;
475
476     case KEY_F16:
477       return scm_from_utf8_symbol ("f16");
478       break;
479
480     case KEY_F17:
481       return scm_from_utf8_symbol ("f17");
482       break;
483
484     case KEY_F18:
485       return scm_from_utf8_symbol ("f18");
486       break;
487
488     case KEY_F19:
489       return scm_from_utf8_symbol ("f19");
490       break;
491
492     case KEY_F20:
493       return scm_from_utf8_symbol ("f20");
494       break;
495
496     case KEY_F21:
497       return scm_from_utf8_symbol ("f21");
498       break;
499
500     case KEY_F22:
501       return scm_from_utf8_symbol ("f22");
502       break;
503
504     case KEY_F23:
505       return scm_from_utf8_symbol ("f23");
506       break;
507
508     case KEY_F24:
509       return scm_from_utf8_symbol ("f24");
510       break;
511
512     case KEY_NUMLOCK:
513       return scm_from_utf8_symbol ("numlock");
514       break;
515
516     case KEY_SCROLL:
517       return scm_from_utf8_symbol ("scroll");
518       break;
519
520     case KEY_LSHIFT:
521       return scm_from_utf8_symbol ("lshift");
522       break;
523
524     case KEY_RSHIFT:
525       return scm_from_utf8_symbol ("rshift");
526       break;
527
528     case KEY_LCONTROL:
529       return scm_from_utf8_symbol ("lcontrol");
530       break;
531
532     case KEY_RCONTROL:
533       return scm_from_utf8_symbol ("rcontrol");
534       break;
535
536     case KEY_LMENU:
537       return scm_from_utf8_symbol ("lmenu");
538       break;
539
540     case KEY_RMENU:
541       return scm_from_utf8_symbol ("rmenu");
542       break;
543
544     case KEY_OEM_1:
545       return scm_from_utf8_symbol ("oem-1");
546       break;
547
548     case KEY_PLUS:
549       return scm_from_utf8_symbol ("plus");
550       break;
551
552     case KEY_COMMA:
553       return scm_from_utf8_symbol ("comma");
554       break;
555
556     case KEY_MINUS:
557       return scm_from_utf8_symbol ("minus");
558       break;
559
560     case KEY_PERIOD:
561       return scm_from_utf8_symbol ("period");
562       break;
563
564     case KEY_OEM_2:
565       return scm_from_utf8_symbol ("oem-2");
566       break;
567
568     case KEY_OEM_3:
569       return scm_from_utf8_symbol ("oem-3");
570       break;
571
572     case KEY_OEM_4:
573       return scm_from_utf8_symbol ("oem-4");
574       break;
575
576     case KEY_OEM_5:
577       return scm_from_utf8_symbol ("oem-5");
578       break;
579
580     case KEY_OEM_6:
581       return scm_from_utf8_symbol ("oem-6");
582       break;
583
584     case KEY_OEM_7:
585       return scm_from_utf8_symbol ("oem-7");
586       break;
587
588     case KEY_OEM_8:
589       return scm_from_utf8_symbol ("oem-8");
590       break;
591
592     case KEY_OEM_AX:
593       return scm_from_utf8_symbol ("oem-ax");
594       break;
595
596     case KEY_OEM_102:
597       return scm_from_utf8_symbol ("oem-102");
598       break;
599
600     case KEY_ATTN:
601       return scm_from_utf8_symbol ("attn");
602       break;
603
604     case KEY_CRSEL:
605       return scm_from_utf8_symbol ("crsel");
606       break;
607
608     case KEY_EXSEL:
609       return scm_from_utf8_symbol ("exsel");
610       break;
611
612     case KEY_EREOF:
613       return scm_from_utf8_symbol ("ereof");
614       break;
615
616     case KEY_PLAY:
617       return scm_from_utf8_symbol ("play");
618       break;
619
620     case KEY_ZOOM:
621       return scm_from_utf8_symbol ("zoom");
622       break;
623
624     case KEY_PA1:
625       return scm_from_utf8_symbol ("pa1");
626       break;
627
628     case KEY_OEM_CLEAR:
629       return scm_from_utf8_symbol ("oem-clear");
630       break;
631
632     default:
633       SCM code = scm_from_uint (key_code);
634       scm_error (scm_arg_type_key, NULL, "Wrong key code: ~S",
635                  scm_list_1 (code), scm_list_1 (code));
636     }
637 }