aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hidio-help.pd226
-rw-r--r--hidio.c17
-rw-r--r--hidio.h2
-rw-r--r--hidio_darwin.c13
-rw-r--r--hidio_types.c6
5 files changed, 165 insertions, 99 deletions
diff --git a/hidio-help.pd b/hidio-help.pd
index c94d03e..4ecaa2e 100644
--- a/hidio-help.pd
+++ b/hidio-help.pd
@@ -1,4 +1,4 @@
-#N canvas 219 36 843 580 10;
+#N canvas 207 22 843 580 10;
#X floatatom 27 445 5 0 0 0 - - -;
#X floatatom 83 445 5 0 0 0 - - -;
#X obj 191 164 tgl 35 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 25
@@ -8,7 +8,7 @@
#X symbolatom 544 377 15 0 0 1 event_type - -;
#X obj 2 2 cnv 15 600 20 empty empty hidio 2 11 1 18 -233017 -66577
0;
-#X text 224 324 outlet message format:;
+#X text 284 344 outlet message format:;
#X msg 374 130 close;
#X msg 374 109 refresh;
#X text 435 107 refresh device list;
@@ -18,7 +18,7 @@
#X text 473 557 $Author: eighthave $;
#X text 425 33 !!! This software is very much alpha \, so any aspect
of it could change without notice !!!;
-#X obj 9 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 66455
+#X obj 9 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 1
;
#X floatatom 140 445 5 0 0 0 - - -;
#X msg 374 151 print;
@@ -35,37 +35,37 @@ of it could change without notice !!!;
#X floatatom 263 401 6 0 0 0 - - -;
#X floatatom 313 401 6 0 0 0 - - -;
#X floatatom 363 401 6 0 0 0 - - -;
-#X obj 39 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 133004
+#X obj 39 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 1
;
-#X obj 69 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 133004
+#X obj 69 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 1
;
-#X obj 99 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 66455
+#X obj 99 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 1
;
-#X obj 129 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
-66455;
-#X obj 159 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
-66455;
-#X obj 189 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
-133004;
-#X obj 219 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
-133004;
-#X obj 249 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
-66455;
-#X obj 279 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
-133004;
-#X obj 309 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
-133004;
-#X obj 339 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
-66455;
-#X obj 369 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
-66455;
-#X obj 399 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
-133004;
-#X obj 429 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
-66455;
-#X obj 459 508 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
-66455;
-#X msg 25 155 debug 9;
+#X obj 129 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 159 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 189 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 219 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 249 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 279 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 309 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 339 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 369 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 399 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 429 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 459 510 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X msg 25 155 debug 0;
#X msg 298 135 info;
#N canvas 743 25 411 235 see 0;
#N canvas 108 318 543 264 route 0;
@@ -188,14 +188,14 @@ IDs (it is not case sensitive):;
#X connect 2 0 4 0;
#X connect 7 0 4 0;
#X restore 174 37 pd open by vendor/product ID;
-#X msg 225 309 button button_2 0 0;
+#X msg 285 329 key e 0 0;
#X text 49 543 (C) Copyright 2004 Hans-Christoph Steiner <hans@at.or.at>
;
#N canvas 162 133 570 420 serin 0;
-#X obj 209 61 cnv 15 15 15 empty \$0-debug-canvas 9 4 8 0 14 -233017
+#X obj 209 61 cnv 15 15 15 empty \$0-debug-canvas 0 4 8 0 14 -233017
-1 0;
#X obj 60 61 hradio 15 1 1 10 empty empty empty 0 -6 0 8 -261689 -1
--1 9;
+-1 0;
#X obj 60 13 inlet;
#X msg 200 202 label \$1;
#X obj 200 180 makefilename %d;
@@ -220,10 +220,10 @@ IDs (it is not case sensitive):;
#X coords 0 -1 1 1 165 17 1 60 60;
#X restore 25 134 pd serin;
#N canvas 162 133 570 420 serin 0;
-#X obj 286 61 cnv 15 30 15 empty \$0-open-canvas 6 4 8 0 14 -233017
+#X obj 286 61 cnv 15 30 15 empty \$0-open-canvas 1 4 8 0 14 -233017
-1 0;
#X obj 60 61 hradio 15 1 1 15 empty empty empty 0 -6 0 8 -225271 -1
--1 6;
+-1 1;
#X obj 60 13 inlet;
#X msg 200 202 label \$1;
#X obj 200 180 makefilename %d;
@@ -249,12 +249,12 @@ IDs (it is not case sensitive):;
#X restore 262 83 pd serin;
#X obj 646 486 pddp/open all_about_hid;
#X obj 306 244 hidio;
-#X obj 226 290 flatspace/prepend set;
+#X obj 286 310 flatspace/prepend set;
#X obj 544 315 unpack symbol symbol float float;
#X floatatom 683 336 2 0 0 1 instance - -;
#X obj 65 368 route x y z rx ry rz slider dial;
#X obj 10 314 route key relative absolute;
-#X text 218 341 [event_type event_code instance value(;
+#X text 278 361 [event_type event_code instance value(;
#N canvas 0 22 454 304 remove 0;
#X obj 134 12 inlet;
#X obj 109 60 unpack symbol symbol float float;
@@ -267,9 +267,7 @@ IDs (it is not case sensitive):;
#X connect 1 3 2 2;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
-#X restore 10 293 pd remove instance numbers;
-#X obj 9 466 route a_key b_key c_key d_key e_key f_key g_key h_key
-i_key j_key k_key l_key m_key n_key o_key p_key;
+#X restore 99 272 pd remove instance numbers;
#N canvas 114 93 487 366 raw 0;
#X obj 144 45 inlet;
#X obj 88 104 route DESKTOP;
@@ -297,11 +295,11 @@ i_key j_key k_key l_key m_key n_key o_key p_key;
#X connect 8 0 11 0;
#X connect 9 0 8 1;
#X connect 10 0 9 0;
-#X restore 408 294 pd raw;
+#X restore 315 284 pd raw;
#X floatatom 63 401 6 0 0 0 - - -;
-#X obj 455 295 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+#X obj 362 285 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
-#X msg 262 104 open 6;
+#X msg 262 104 open 1;
#N canvas 766 107 771 427 output 0;
#X obj 286 341 outlet;
#X msg 112 70 255;
@@ -405,6 +403,87 @@ i_key j_key k_key l_key m_key n_key o_key p_key;
#X msg 374 172 devices;
#X msg 374 193 elements;
#X text 437 194 print a list of elements for the current device;
+#X obj 9 478 route a b c d e f g h i j k l m n o p;
+#N canvas 840 22 558 266 key_0 0;
+#X obj 17 17 inlet;
+#X obj 17 54 route key;
+#X obj 17 86 route key_0;
+#X obj 17 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 1
+;
+#X obj 47 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 133004
+;
+#X obj 77 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 133004
+;
+#X obj 107 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 137 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 167 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 197 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 227 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 257 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 287 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 317 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 347 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 377 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 407 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 437 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 467 206 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
+1;
+#X obj 17 114 route 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 0;
+#X msg 381 142 0;
+#X text 177 31 On some platforms \, you key a duplicate set of key
+messages where the key type is key_0 and the value is the number of
+the key pressed.;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 19 0;
+#X connect 19 0 3 0;
+#X connect 19 1 4 0;
+#X connect 19 2 5 0;
+#X connect 19 3 6 0;
+#X connect 19 4 7 0;
+#X connect 19 5 8 0;
+#X connect 19 6 9 0;
+#X connect 19 7 10 0;
+#X connect 19 8 11 0;
+#X connect 19 9 12 0;
+#X connect 19 10 13 0;
+#X connect 19 11 14 0;
+#X connect 19 12 15 0;
+#X connect 19 13 16 0;
+#X connect 19 14 17 0;
+#X connect 19 15 18 0;
+#X connect 19 16 20 0;
+#X connect 20 0 3 0;
+#X connect 20 0 4 0;
+#X connect 20 0 18 0;
+#X connect 20 0 17 0;
+#X connect 20 0 16 0;
+#X connect 20 0 15 0;
+#X connect 20 0 14 0;
+#X connect 20 0 13 0;
+#X connect 20 0 12 0;
+#X connect 20 0 11 0;
+#X connect 20 0 10 0;
+#X connect 20 0 9 0;
+#X connect 20 0 8 0;
+#X connect 20 0 7 0;
+#X connect 20 0 6 0;
+#X connect 20 0 5 0;
+#X restore 103 293 pd key_0 key mapping;
+#X text 14 462 (following the USB standard \, US keycodes are used)
+;
#X connect 2 0 57 0;
#X connect 8 0 57 0;
#X connect 9 0 57 0;
@@ -414,8 +493,8 @@ i_key j_key k_key l_key m_key n_key o_key p_key;
#X connect 50 0 57 0;
#X connect 51 0 57 0;
#X connect 54 0 47 0;
-#X connect 55 0 69 0;
-#X connect 57 0 66 0;
+#X connect 55 0 68 0;
+#X connect 57 0 65 0;
#X connect 57 0 59 0;
#X connect 57 0 58 0;
#X connect 57 0 64 0;
@@ -425,40 +504,41 @@ i_key j_key k_key l_key m_key n_key o_key p_key;
#X connect 59 1 4 0;
#X connect 59 2 60 0;
#X connect 59 3 3 0;
-#X connect 61 0 67 0;
+#X connect 61 0 66 0;
#X connect 61 1 26 0;
#X connect 61 2 27 0;
#X connect 61 3 28 0;
#X connect 61 4 29 0;
#X connect 61 5 30 0;
#X connect 61 6 31 0;
-#X connect 62 0 65 0;
-#X connect 62 1 71 0;
+#X connect 62 0 76 0;
+#X connect 62 1 70 0;
#X connect 62 2 61 0;
#X connect 64 0 62 0;
-#X connect 65 0 16 0;
-#X connect 65 1 32 0;
-#X connect 65 2 33 0;
-#X connect 65 3 34 0;
-#X connect 65 4 35 0;
-#X connect 65 5 36 0;
-#X connect 65 6 37 0;
-#X connect 65 7 38 0;
-#X connect 65 8 39 0;
-#X connect 65 9 40 0;
-#X connect 65 10 41 0;
-#X connect 65 11 42 0;
-#X connect 65 12 43 0;
-#X connect 65 13 44 0;
-#X connect 65 14 45 0;
-#X connect 65 15 46 0;
-#X connect 68 0 66 1;
+#X connect 64 0 77 0;
+#X connect 67 0 65 1;
+#X connect 68 0 57 0;
#X connect 69 0 57 0;
-#X connect 70 0 57 0;
-#X connect 71 0 0 0;
-#X connect 71 1 1 0;
-#X connect 71 2 17 0;
-#X connect 71 4 25 0;
-#X connect 71 5 72 0;
+#X connect 70 0 0 0;
+#X connect 70 1 1 0;
+#X connect 70 2 17 0;
+#X connect 70 4 25 0;
+#X connect 70 5 71 0;
+#X connect 73 0 57 0;
#X connect 74 0 57 0;
-#X connect 75 0 57 0;
+#X connect 76 0 16 0;
+#X connect 76 1 32 0;
+#X connect 76 2 33 0;
+#X connect 76 3 34 0;
+#X connect 76 4 35 0;
+#X connect 76 5 36 0;
+#X connect 76 6 37 0;
+#X connect 76 7 38 0;
+#X connect 76 8 39 0;
+#X connect 76 9 40 0;
+#X connect 76 10 41 0;
+#X connect 76 11 42 0;
+#X connect 76 12 43 0;
+#X connect 76 13 44 0;
+#X connect 76 14 45 0;
+#X connect 76 15 46 0;
diff --git a/hidio.c b/hidio.c
index 81580dc..941d492 100644
--- a/hidio.c
+++ b/hidio.c
@@ -45,7 +45,7 @@
#define DEBUG(x)
//#define DEBUG(x) x
-unsigned short global_debug_level = 0;
+unsigned short global_debug_level = 0; /* high numbers means more messages */
/*------------------------------------------------------------------------------
* GLOBAL VARIABLES
@@ -233,7 +233,6 @@ static short get_device_number_from_arguments(int argc, t_atom *argv)
if(first_argument == _sym_nothing)
#endif /* PD */
{ // single float arg means device #
- post("first_argument == &s_");
#ifdef PD
device_number = (short) atom_getfloatarg(0,argc,argv);
#else
@@ -435,12 +434,13 @@ static void hidio_close(t_hidio *x)
/* just to be safe, stop it first */
hidio_stop_poll(x);
-
+
if(! hidio_close_device(x))
{
debug_post(LOG_INFO,"[hidio] closed device %d",x->x_device_number);
x->x_device_open = 0;
}
+ output_open_status(x);
}
@@ -483,11 +483,12 @@ static void hidio_open(t_hidio *x, t_symbol *s, int argc, t_atom *argv)
else
{
x->x_device_number = -1;
- error("[hidio] can not open device %d",new_device_number);
+ pd_error(x, "[hidio] can not open device %d",new_device_number);
}
}
}
- else debug_post(LOG_WARNING,"[hidio] device does not exist");
+ else
+ debug_error(x, LOG_WARNING,"[hidio] device does not exist");
/* always output open result so you can test for success in Pd space */
output_open_status(x);
}
@@ -605,7 +606,6 @@ static void *hidio_new(t_symbol *s, int argc, t_atom *argv)
#endif /* PD */
/* init vars */
- global_debug_level = 9; /* high numbers here means see more messages */
x->x_device_open = 0;
x->x_started = 0;
x->x_delay = DEFAULT_DELAY;
@@ -642,7 +642,6 @@ void hidio_setup(void)
/* TODO: [print( should be dumped for [devices( and [elements( messages */
class_addmethod(hidio_class,(t_method) hidio_devices,gensym("devices"),0);
class_addmethod(hidio_class,(t_method) hidio_elements,gensym("elements"),0);
- class_addmethod(hidio_class,(t_method) hidio_print,gensym("print"),0);
class_addmethod(hidio_class,(t_method) hidio_info,gensym("info"),0);
class_addmethod(hidio_class,(t_method) hidio_open,gensym("open"),A_GIMME,0);
class_addmethod(hidio_class,(t_method) hidio_close,gensym("close"),0);
@@ -652,7 +651,7 @@ void hidio_setup(void)
class_addmethod(hidio_class,(t_method) hidio_write_event, gensym("write"), A_GIMME ,0);
- post("[hidio] %d.%d, written by Hans-Christoph Steiner <hans@eds.org>",
+ post("[hidio] %d.%d: © 2004-2008 by Hans-Christoph Steiner & Olaf Matthes",
HIDIO_MAJOR_VERSION, HIDIO_MINOR_VERSION);
post("\tcompiled on "__DATE__" at "__TIME__ " ");
@@ -748,7 +747,7 @@ int main()
hidio_class = c;
finder_addclass("Devices", "hidio");
- post("hidio %d.%d: © 2006 by Hans-Christoph Steiner & Olaf Matthes",
+ post("hidio %d.%d: © 2004-2008 by Hans-Christoph Steiner & Olaf Matthes",
HIDIO_MAJOR_VERSION, HIDIO_MINOR_VERSION);
post("hidio: compiled on "__DATE__" at "__TIME__ " ");
diff --git a/hidio.h b/hidio.h
index 56c4d5f..1474791 100644
--- a/hidio.h
+++ b/hidio.h
@@ -44,7 +44,7 @@ typedef void t_clock;
#define HIDIO_MAJOR_VERSION 0
-#define HIDIO_MINOR_VERSION 0
+#define HIDIO_MINOR_VERSION 1
/* static char *version = "$Revision: 1.20 $"; */
diff --git a/hidio_darwin.c b/hidio_darwin.c
index 2cc5f6e..1eb6bf4 100644
--- a/hidio_darwin.c
+++ b/hidio_darwin.c
@@ -865,19 +865,6 @@ void hidio_build_device_list(void)
debug_post(LOG_WARNING,"[hidio] completed device list.");
}
-/* TODO: this should be dumped for [devices( and [elements( messages */
-void hidio_print(t_hidio *x)
-{
- if( !HIDHaveDeviceList() ) hidio_build_device_list();
- hidio_devices(x);
- if(x->x_device_open)
- {
- hidio_elements(x);
- hidio_ff_print(x);
- }
-}
-
-
void hidio_platform_specific_free(t_hidio *x)
{
int j;
diff --git a/hidio_types.c b/hidio_types.c
index 4a69bda..d141904 100644
--- a/hidio_types.c
+++ b/hidio_types.c
@@ -5,8 +5,8 @@
#endif
#include "hidio.h"
-//#define DEBUG(x)
-#define DEBUG(x) x
+#define DEBUG(x)
+//#define DEBUG(x) x
/*==============================================================================
@@ -23,7 +23,7 @@ static char *absolute_strings[ABSOLUTE_ARRAY_MAX] = {
/* keys (keyboards, keypads) */
static char *key_strings[KEY_ARRAY_MAX] = {
- "key_0","errorrollover","postfail","errorundefined","a_key","b_key","c_key","d_key","e_key","f_key","g_key","h_key","i_key","j_key","k_key","l_key","m_key","n_key","o_key","p_key","q_key","r_key","s_key","t_key","u_key","v_key","w_key","x_key","y_key","z_key","1_key","2_key","3_key","4_key","5_key","6_key","7_key","8_key","9_key","0_key","enter","escape","deleteorbackspace","tab","spacebar","hyphen","equalsign","openbracket","closebracket","backslash","nonuspound","semicolon","quote","graveaccentandtilde","comma","period","slash","capslock","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","printscreen","scrolllock","pause","insert","home","pageup","deleteforward","end","pagedown","rightarrow","leftarrow","downarrow","uparrow","keypad_numlock","keypad_slash","keypad_asterisk","keypad_hyphen","keypad_plus","keypad_enter","keypad_1","keypad_2","keypad_3","keypad_4","keypad_5","keypad_6","keypad_7","keypad_8","keypad_9","keypad_0","keypad_period","nonusbackslash","application","power","keypad_equalsign","f13","f14","f15","f16","f17","f18","f19","f20","f21","f22","f23","f24","execute","help","menu","select","stop","again","undo","cut","copy","paste","find","mute","volumeup","volumedown","lockingcapslock","lockingnumlock","lockingscrolllock","keypad_comma","keypad_equalsignas400","international1","international2","international3","international4","international5","international6","international7","international8","international9","lang1","lang2","lang3","lang4","lang5","lang6","lang7","lang8","lang9","alternateerase","sysreqorattention","cancel","clear","prior","return","separator","out","oper","clearoragain","crselorprops","exsel","key_165","key_166","key_167","key_168","key_169","key_170","key_171","key_172","key_173","key_174","key_175","key_176","key_177","key_178","key_179","key_180","key_181","key_182","key_183","key_184","key_185","key_186","key_187","key_188","key_189","key_190","key_191","key_192","key_193","key_194","key_195","key_196","key_197","key_198","key_199","key_200","key_201","key_202","key_203","key_204","key_205","key_206","key_207","key_208","key_209","key_210","key_211","key_212","key_213","key_214","key_215","key_216","key_217","key_218","key_219","key_220","key_221","key_222","key_223","leftcontrol","leftshift","leftalt","leftgui","rightcontrol","rightshift","rightalt","rightgui","key_232","key_233","key_234","key_235","key_236","key_237","key_238","key_239","key_240","key_241","key_242","key_243","key_244","key_245","key_246","key_247","key_248","key_249","key_250","key_251","key_252","key_253","key_254","key_255"
+ "key_0","errorrollover","postfail","errorundefined","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","1_key","2_key","3_key","4_key","5_key","6_key","7_key","8_key","9_key","0_key","enter","escape","deleteorbackspace","tab","spacebar","hyphen","equalsign","openbracket","closebracket","backslash","nonuspound","semicolon","quote","graveaccentandtilde","comma","period","slash","capslock","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","printscreen","scrolllock","pause","insert","home","pageup","deleteforward","end","pagedown","rightarrow","leftarrow","downarrow","uparrow","keypad_numlock","keypad_slash","keypad_asterisk","keypad_hyphen","keypad_plus","keypad_enter","keypad_1","keypad_2","keypad_3","keypad_4","keypad_5","keypad_6","keypad_7","keypad_8","keypad_9","keypad_0","keypad_period","nonusbackslash","application","power","keypad_equalsign","F13","F14","F15","F16","F17","F18","F19","F20","F21","F22","F23","F24","execute","help","menu","select","stop","again","undo","cut","copy","paste","find","mute","volumeup","volumedown","lockingcapslock","lockingnumlock","lockingscrolllock","keypad_comma","keypad_equalsignas400","international1","international2","international3","international4","international5","international6","international7","international8","international9","lang1","lang2","lang3","lang4","lang5","lang6","lang7","lang8","lang9","alternateerase","sysreqorattention","cancel","clear","prior","return","separator","out","oper","clearoragain","crselorprops","exsel","key_165","key_166","key_167","key_168","key_169","key_170","key_171","key_172","key_173","key_174","key_175","key_176","key_177","key_178","key_179","key_180","key_181","key_182","key_183","key_184","key_185","key_186","key_187","key_188","key_189","key_190","key_191","key_192","key_193","key_194","key_195","key_196","key_197","key_198","key_199","key_200","key_201","key_202","key_203","key_204","key_205","key_206","key_207","key_208","key_209","key_210","key_211","key_212","key_213","key_214","key_215","key_216","key_217","key_218","key_219","key_220","key_221","key_222","key_223","leftcontrol","leftshift","leftalt","leftgui","rightcontrol","rightshift","rightalt","rightgui","key_232","key_233","key_234","key_235","key_236","key_237","key_238","key_239","key_240","key_241","key_242","key_243","key_244","key_245","key_246","key_247","key_248","key_249","key_250","key_251","key_252","key_253","key_254","key_255"
};