From 2c95caf9b1edd3bfaf8cc3a4ea92996b8d0f8f2c Mon Sep 17 00:00:00 2001 From: Merlijn Wajer Date: Tue, 14 May 2013 23:53:37 +0200 Subject: [PATCH] Switch to Python as main implementation. --- README.rst | 48 +- Makefile => c/Makefile | 0 c/README.rst | 39 ++ TODO => c/TODO | 0 config.h => c/config.h | 0 config_functions.h => c/config_functions.h | 0 {confs => c/confs}/key.h | 0 {confs => c/confs}/mouse_map.h | 0 {confs => c/confs}/mulitput.h | 0 {confs => c/confs}/techinc_arcade.h | 0 map.c => c/map.c | 0 py/cinput.py => cinput.py | 0 {py/configs => configs}/example_conf.py | 0 {py/configs => configs}/touchscreen.py | 0 gen.py | 629 +++++++++++++++++++++ py/input-create => input-create | 0 py/input-read => input-read | 0 py/ioctlhelp.py => ioctlhelp.py | 0 py/linux_input.py => linux_input.py | 0 py/linux_uinput.py => linux_uinput.py | 0 py/mapper.py => mapper.py | 0 py/README | 15 - 22 files changed, 693 insertions(+), 38 deletions(-) rename Makefile => c/Makefile (100%) create mode 100644 c/README.rst rename TODO => c/TODO (100%) rename config.h => c/config.h (100%) rename config_functions.h => c/config_functions.h (100%) rename {confs => c/confs}/key.h (100%) rename {confs => c/confs}/mouse_map.h (100%) rename {confs => c/confs}/mulitput.h (100%) rename {confs => c/confs}/techinc_arcade.h (100%) rename map.c => c/map.c (100%) rename py/cinput.py => cinput.py (100%) rename {py/configs => configs}/example_conf.py (100%) rename {py/configs => configs}/touchscreen.py (100%) create mode 100644 gen.py rename py/input-create => input-create (100%) rename py/input-read => input-read (100%) rename py/ioctlhelp.py => ioctlhelp.py (100%) rename py/linux_input.py => linux_input.py (100%) rename py/linux_uinput.py => linux_uinput.py (100%) rename py/mapper.py => mapper.py (100%) delete mode 100644 py/README diff --git a/README.rst b/README.rst index ffb7ac1..443a13d 100644 --- a/README.rst +++ b/README.rst @@ -4,36 +4,38 @@ uinput-mapper uinput-mapper maps input devices to new virtual input devices, using (as implied by the name /dev/uinput[1]). -Configuration is done in the C language (preprocessor mostly) to keep things -simple and clean. - -Comments, feedback, success stories, bugs and rants all welcome. - [1] Or /dev/input/uinput depending on the OS. -Building -======== -Simply: +Usage and Configuration +======================= - make - -to build the program. But you probably want to configure it first. - -Configuration -============= - -Configuration is done in the C preprocessor (and just C), recompile if you make -changes. Symlink "config.h" to an configuration file in confs/ (or just create -it). The example config confs/techinc-arcade.h is documented and should -(hopefully) be clear enough. - -Mind you that invalid configurations can lead to compile-time and run-time -errors. +Configuration is done in Python; examples and other information can be found on +the project website: http://hetgrotebos.org/wiki/uinput-mapper Bugs ==== None that I am aware of, but if you find some please drop me a mail at -http://wizzup.org. +http://wizzup.org. (You can find my email address there) + + +linux_input.py +============== + +Python binding for linux/input.h ; somewhat incomplete. +Included in uinput-mapper ; may be split later + +linux_uinput.py +============== + + +Python binding for linux/uinput.h ; not complete yet. +Included in uinput-mapper ; may be split later + + +Development notes +================= + +gcc -E -dM /usr/include/linux/input.h | egrep ' (EV|SYN|KEY|BTN|REL|ABS|MSC|LED|SND|REP|SW)_[A-Za-z0-9_]+' | ( echo "#include " ; echo "input_constants_dict = {" ; sed -r 's/[^ ]+ +([^ ]+).*/"\1" : \1,/' ; echo "}" ) | gcc -E -o /dev/stdout - | grep 'input_constants_dict = {' -A 100000 > gen.py diff --git a/Makefile b/c/Makefile similarity index 100% rename from Makefile rename to c/Makefile diff --git a/c/README.rst b/c/README.rst new file mode 100644 index 0000000..ffb7ac1 --- /dev/null +++ b/c/README.rst @@ -0,0 +1,39 @@ +uinput-mapper +============= + +uinput-mapper maps input devices to new virtual input devices, using (as implied +by the name /dev/uinput[1]). + +Configuration is done in the C language (preprocessor mostly) to keep things +simple and clean. + +Comments, feedback, success stories, bugs and rants all welcome. + + +[1] Or /dev/input/uinput depending on the OS. + +Building +======== + +Simply: + + make + +to build the program. But you probably want to configure it first. + +Configuration +============= + +Configuration is done in the C preprocessor (and just C), recompile if you make +changes. Symlink "config.h" to an configuration file in confs/ (or just create +it). The example config confs/techinc-arcade.h is documented and should +(hopefully) be clear enough. + +Mind you that invalid configurations can lead to compile-time and run-time +errors. + +Bugs +==== + +None that I am aware of, but if you find some please drop me a mail at +http://wizzup.org. diff --git a/TODO b/c/TODO similarity index 100% rename from TODO rename to c/TODO diff --git a/config.h b/c/config.h similarity index 100% rename from config.h rename to c/config.h diff --git a/config_functions.h b/c/config_functions.h similarity index 100% rename from config_functions.h rename to c/config_functions.h diff --git a/confs/key.h b/c/confs/key.h similarity index 100% rename from confs/key.h rename to c/confs/key.h diff --git a/confs/mouse_map.h b/c/confs/mouse_map.h similarity index 100% rename from confs/mouse_map.h rename to c/confs/mouse_map.h diff --git a/confs/mulitput.h b/c/confs/mulitput.h similarity index 100% rename from confs/mulitput.h rename to c/confs/mulitput.h diff --git a/confs/techinc_arcade.h b/c/confs/techinc_arcade.h similarity index 100% rename from confs/techinc_arcade.h rename to c/confs/techinc_arcade.h diff --git a/map.c b/c/map.c similarity index 100% rename from map.c rename to c/map.c diff --git a/py/cinput.py b/cinput.py similarity index 100% rename from py/cinput.py rename to cinput.py diff --git a/py/configs/example_conf.py b/configs/example_conf.py similarity index 100% rename from py/configs/example_conf.py rename to configs/example_conf.py diff --git a/py/configs/touchscreen.py b/configs/touchscreen.py similarity index 100% rename from py/configs/touchscreen.py rename to configs/touchscreen.py diff --git a/gen.py b/gen.py new file mode 100644 index 0000000..8f86e79 --- /dev/null +++ b/gen.py @@ -0,0 +1,629 @@ +input_constants_dict = { +"BTN_START" : 0x13b, +"LED_MAIL" : 0x09, +"KEY_HIRAGANA" : 91, +"KEY_TOUCHPAD_TOGGLE" : 0x212, +"KEY_DELETEFILE" : 146, +"EV_FF_STATUS" : 0x17, +"KEY_TITLE" : 0x171, +"KEY_GRAVE" : 41, +"KEY_RESERVED" : 0, +"BTN_TRIGGER_HAPPY" : 0x2c0, +"KEY_DVD" : 0x185, +"KEY_FN_F10" : 0x1db, +"KEY_FN_F11" : 0x1dc, +"KEY_FN_F12" : 0x1dd, +"KEY_FRAMEBACK" : 0x1b4, +"KEY_BRL_DOT10" : 0x1fa, +"LED_SUSPEND" : 0x06, +"KEY_SLEEP" : 142, +"KEY_VCR2" : 0x17c, +"ABS_RX" : 0x03, +"ABS_RY" : 0x04, +"ABS_RZ" : 0x05, +"BTN_TR" : 0x137, +"KEY_ZENKAKUHANKAKU" : 85, +"KEY_IMAGES" : 0x1ba, +"KEY_LEFTMETA" : 125, +"KEY_OPEN" : 134, +"KEY_BATTERY" : 236, +"KEY_MACRO" : 112, +"KEY_MODE" : 0x175, +"KEY_GREEN" : 0x18f, +"KEY_SAT" : 0x17d, +"KEY_RIGHTMETA" : 126, +"BTN_BASE5" : 0x12a, +"KEY_COMPUTER" : 157, +"KEY_SELECT" : 0x161, +"BTN_TOOL_QUINTTAP" : 0x148, +"BTN_TOUCH" : 0x14a, +"KEY_PAGEDOWN" : 109, +"KEY_CAPSLOCK" : 58, +"KEY_REDO" : 182, +"KEY_KBDILLUMDOWN" : 229, +"ABS_HAT0X" : 0x10, +"ABS_HAT0Y" : 0x11, +"REL_CNT" : (0x0f +1), +"ABS_HAT1X" : 0x12, +"ABS_HAT1Y" : 0x13, +"KEY_SCROLLDOWN" : 178, +"KEY_SWITCHVIDEOMODE" : 227, +"ABS_HAT2Y" : 0x15, +"BTN_TR2" : 0x139, +"SYN_MT_REPORT" : 2, +"KEY_LIST" : 0x18b, +"KEY_HANGUEL" : 122, +"ABS_MT_TOOL_TYPE" : 0x37, +"ABS_HAT3X" : 0x16, +"ABS_HAT3Y" : 0x17, +"BTN_THUMB" : 0x121, +"KEY_WORDPROCESSOR" : 0x1a5, +"KEY_CAMERA" : 212, +"KEY_MOVE" : 175, +"KEY_CONNECT" : 218, +"SW_KEYPAD_SLIDE" : 0x0a, +"BTN_DIGI" : 0x140, +"KEY_PROG1" : 148, +"KEY_PROG2" : 149, +"KEY_PROG3" : 202, +"KEY_PROG4" : 203, +"KEY_DELETE" : 111, +"BTN_TOOL_PENCIL" : 0x143, +"REL_WHEEL" : 0x08, +"EV_PWR" : 0x16, +"BTN_MOUSE" : 0x110, +"KEY_SCREENLOCK" : 152, +"SW_VIDEOOUT_INSERT" : 0x08, +"KEY_NUMERIC_6" : 0x206, +"SW_LINEIN_INSERT" : 0x0d, +"KEY_INS_LINE" : 0x1c2, +"SW_ROTATE_LOCK" : 0x0c, +"BTN_TOOL_LENS" : 0x147, +"BTN_JOYSTICK" : 0x120, +"KEY_GAMES" : 0x1a1, +"KEY_KATAKANA" : 90, +"KEY_PROPS" : 130, +"KEY_CALENDAR" : 0x18d, +"KEY_RESTART" : 0x198, +"BTN_PINKIE" : 0x125, +"KEY_KBDILLUMTOGGLE" : 228, +"KEY_CLEAR" : 0x163, +"KEY_CAMERA_FOCUS" : 0x210, +"KEY_NUMLOCK" : 69, +"ABS_VOLUME" : 0x20, +"KEY_ZOOMIN" : 0x1a2, +"KEY_EDIT" : 176, +"KEY_AUX" : 0x186, +"KEY_EQUAL" : 13, +"BTN_BACK" : 0x116, +"KEY_DIRECTORY" : 0x18a, +"KEY_CAMERA_RIGHT" : 0x21a, +"KEY_ADDRESSBOOK" : 0x1ad, +"BTN_TL2" : 0x138, +"KEY_PASTE" : 135, +"BTN_TOOL_TRIPLETAP" : 0x14e, +"KEY_CHANNELUP" : 0x192, +"KEY_SHUFFLE" : 0x19a, +"ABS_CNT" : (0x3f +1), +"KEY_MAIL" : 155, +"KEY_LEFTALT" : 56, +"KEY_WWW" : 150, +"EV_MAX" : 0x1f, +"ABS_TOOL_WIDTH" : 0x1c, +"ABS_TILT_X" : 0x1a, +"ABS_TILT_Y" : 0x1b, +"ABS_MISC" : 0x28, +"KEY_KPEQUAL" : 117, +"KEY_HENKAN" : 92, +"KEY_DISPLAYTOGGLE" : 0x1af, +"LED_MISC" : 0x08, +"KEY_RIGHTALT" : 100, +"KEY_SPORT" : 220, +"MSC_SCAN" : 0x04, +"KEY_POWER" : 116, +"KEY_APOSTROPHE" : 40, +"KEY_SCREEN" : 0x177, +"KEY_RADIO" : 0x181, +"ABS_DISTANCE" : 0x19, +"KEY_DATABASE" : 0x1aa, +"KEY_VOLUMEDOWN" : 114, +"BTN_TRIGGER_HAPPY11" : 0x2ca, +"KEY_SENDFILE" : 145, +"KEY_RIGHTSHIFT" : 54, +"KEY_ARCHIVE" : 0x169, +"KEY_NUMERIC_POUND" : 0x20b, +"BTN_BASE" : 0x126, +"EV_VERSION" : 0x010001, +"KEY_EPG" : 0x16d, +"KEY_NEXTSONG" : 163, +"KEY_FIRST" : 0x194, +"KEY_SPREADSHEET" : 0x1a7, +"KEY_KPSLASH" : 98, +"KEY_BACK" : 158, +"KEY_KP3" : 81, +"KEY_KP5" : 76, +"KEY_PAGEUP" : 104, +"KEY_ESC" : 1, +"SW_JACK_PHYSICAL_INSERT" : 0x07, +"KEY_HOME" : 102, +"KEY_WPS_BUTTON" : 0x211, +"KEY_AUDIO" : 0x188, +"KEY_NEW" : 181, +"ABS_MT_PRESSURE" : 0x3a, +"KEY_SAT2" : 0x17e, +"SND_CLICK" : 0x00, +"KEY_LINEFEED" : 101, +"EV_MSC" : 0x04, +"KEY_PVR" : 0x16e, +"KEY_KPPLUSMINUS" : 118, +"KEY_SHOP" : 221, +"KEY_LEFTSHIFT" : 42, +"KEY_BASSBOOST" : 209, +"LED_KANA" : 0x04, +"KEY_BRIGHTNESS_CYCLE" : 243, +"KEY_TAB" : 15, +"KEY_UNKNOWN" : 240, +"SND_BELL" : 0x01, +"ABS_MT_SLOT" : 0x2f, +"KEY_KPLEFTPAREN" : 179, +"BTN_TOOL_QUADTAP" : 0x14f, +"KEY_EDITOR" : 0x1a6, +"REP_DELAY" : 0x00, +"KEY_EMAIL" : 215, +"BTN_TL" : 0x136, +"KEY_MEMO" : 0x18c, +"BTN_TRIGGER_HAPPY26" : 0x2d9, +"KEY_102ND" : 86, +"BTN_TRIGGER_HAPPY28" : 0x2db, +"BTN_BASE2" : 0x127, +"BTN_BASE3" : 0x128, +"BTN_BASE4" : 0x129, +"BTN_BASE6" : 0x12b, +"KEY_MENU" : 139, +"MSC_MAX" : 0x07, +"KEY_SPACE" : 57, +"KEY_INFO" : 0x166, +"REL_X" : 0x00, +"REL_Y" : 0x01, +"REL_Z" : 0x02, +"MSC_SERIAL" : 0x00, +"KEY_WAKEUP" : 143, +"KEY_BLUE" : 0x191, +"KEY_HOMEPAGE" : 172, +"KEY_KPCOMMA" : 121, +"KEY_ZOOMRESET" : 0x1a4, +"KEY_FAVORITES" : 0x16c, +"BTN_TOOL_DOUBLETAP" : 0x14d, +"SYN_DROPPED" : 3, +"KEY_TOUCHPAD_ON" : 0x213, +"BTN_SELECT" : 0x13a, +"KEY_FN_1" : 0x1de, +"KEY_FN_2" : 0x1df, +"KEY_ISO" : 170, +"KEY_FN_D" : 0x1e0, +"KEY_FN_E" : 0x1e1, +"KEY_FN_F" : 0x1e2, +"KEY_FN_S" : 0x1e3, +"KEY_HANJA" : 123, +"BTN_MISC" : 0x100, +"KEY_MIN_INTERESTING" : 113, +"KEY_BREAK" : 0x19b, +"KEY_FORWARD" : 159, +"KEY_MAX" : 0x2ff, +"KEY_TV2" : 0x17a, +"KEY_PAUSECD" : 201, +"BTN_TRIGGER" : 0x120, +"KEY_RIGHT" : 106, +"KEY_F21" : 191, +"BTN_MIDDLE" : 0x112, +"BTN_TRIGGER_HAPPY31" : 0x2de, +"KEY_SLOW" : 0x199, +"BTN_TRIGGER_HAPPY34" : 0x2e1, +"KEY_F10" : 68, +"KEY_F11" : 87, +"KEY_F12" : 88, +"KEY_F13" : 183, +"KEY_F14" : 184, +"KEY_F15" : 185, +"KEY_F16" : 186, +"KEY_F17" : 187, +"KEY_F18" : 188, +"KEY_F19" : 189, +"KEY_SEMICOLON" : 39, +"KEY_F20" : 190, +"KEY_F22" : 192, +"KEY_F23" : 193, +"KEY_F24" : 194, +"SW_MICROPHONE_INSERT" : 0x04, +"KEY_SAVE" : 234, +"KEY_1" : 2, +"KEY_2" : 3, +"KEY_3" : 4, +"KEY_4" : 5, +"KEY_5" : 6, +"KEY_6" : 7, +"KEY_7" : 8, +"KEY_8" : 9, +"KEY_9" : 10, +"KEY_B" : 48, +"KEY_C" : 46, +"KEY_D" : 32, +"KEY_E" : 18, +"KEY_F" : 33, +"KEY_G" : 34, +"KEY_H" : 35, +"KEY_I" : 23, +"KEY_K" : 37, +"KEY_L" : 38, +"KEY_M" : 50, +"KEY_O" : 24, +"KEY_P" : 25, +"KEY_R" : 19, +"KEY_S" : 31, +"KEY_T" : 20, +"KEY_U" : 22, +"KEY_W" : 17, +"KEY_X" : 45, +"KEY_Z" : 44, +"BTN_B" : 0x131, +"BTN_C" : 0x132, +"BTN_X" : 0x133, +"BTN_Y" : 0x134, +"BTN_Z" : 0x135, +"LED_MAX" : 0x0f, +"KEY_MHP" : 0x16f, +"ABS_X" : 0x00, +"ABS_Y" : 0x01, +"ABS_Z" : 0x02, +"KEY_F5" : 63, +"KEY_RECORD" : 167, +"SW_LINEOUT_INSERT" : 0x06, +"KEY_CHANNEL" : 0x16b, +"KEY_EJECTCD" : 161, +"KEY_VIDEOPHONE" : 0x1a0, +"KEY_VIDEO" : 0x189, +"KEY_VENDOR" : 0x168, +"KEY_MP3" : 0x187, +"MSC_GESTURE" : 0x02, +"BTN_SIDE" : 0x113, +"ABS_WHEEL" : 0x08, +"BTN_WHEEL" : 0x150, +"SYN_CONFIG" : 1, +"KEY_0" : 11, +"ABS_MT_POSITION_X" : 0x35, +"ABS_MT_POSITION_Y" : 0x36, +"ABS_MT_TRACKING_ID" : 0x39, +"KEY_AGAIN" : 129, +"KEY_DIGITS" : 0x19d, +"EV_FF" : 0x15, +"BTN_TRIGGER_HAPPY40" : 0x2e7, +"LED_SLEEP" : 0x05, +"KEY_SEND" : 231, +"REP_MAX" : 0x01, +"KEY_MICMUTE" : 248, +"KEY_COMMA" : 51, +"KEY_GRAPHICSEDITOR" : 0x1a8, +"KEY_A" : 30, +"BTN_TOOL_AIRBRUSH" : 0x144, +"BTN_0" : 0x100, +"KEY_J" : 36, +"KEY_YELLOW" : 0x190, +"BTN_2" : 0x102, +"KEY_LEFTBRACE" : 26, +"ABS_BRAKE" : 0x0a, +"BTN_4" : 0x104, +"ABS_MT_TOUCH_MINOR" : 0x31, +"KEY_N" : 49, +"KEY_QUESTION" : 214, +"KEY_LANGUAGE" : 0x170, +"KEY_XFER" : 147, +"BTN_7" : 0x107, +"KEY_Q" : 16, +"KEY_LOGOFF" : 0x1b1, +"BTN_9" : 0x109, +"KEY_SOUND" : 213, +"SW_MAX" : 0x0f, +"KEY_V" : 47, +"BTN_TOP2" : 0x124, +"KEY_PRINT" : 210, +"KEY_Y" : 21, +"BTN_A" : 0x130, +"KEY_COPY" : 133, +"KEY_CAMERA_ZOOMOUT" : 0x216, +"EV_SW" : 0x05, +"KEY_BRL_DOT1" : 0x1f1, +"KEY_BRL_DOT2" : 0x1f2, +"KEY_BRL_DOT3" : 0x1f3, +"KEY_BRL_DOT4" : 0x1f4, +"KEY_BRL_DOT5" : 0x1f5, +"KEY_BRL_DOT6" : 0x1f6, +"KEY_BRL_DOT7" : 0x1f7, +"KEY_BRL_DOT8" : 0x1f8, +"KEY_BRL_DOT9" : 0x1f9, +"LED_MUTE" : 0x07, +"KEY_BRIGHTNESSUP" : 225, +"KEY_FN_F7" : 0x1d8, +"SW_DOCK" : 0x05, +"KEY_YEN" : 124, +"KEY_PLAY" : 207, +"KEY_REWIND" : 168, +"EV_CNT" : (0x1f +1), +"KEY_VIDEO_NEXT" : 241, +"KEY_DIRECTION" : 153, +"KEY_TOUCHPAD_OFF" : 0x214, +"KEY_HELP" : 138, +"KEY_NUMERIC_STAR" : 0x20a, +"KEY_BACKSLASH" : 43, +"KEY_SYSRQ" : 99, +"KEY_END" : 107, +"REL_HWHEEL" : 0x06, +"KEY_RFKILL" : 247, +"KEY_LEFTCTRL" : 29, +"KEY_KPRIGHTPAREN" : 180, +"ABS_THROTTLE" : 0x06, +"KEY_KPASTERISK" : 55, +"KEY_REFRESH" : 173, +"KEY_CLOSECD" : 160, +"KEY_RIGHTCTRL" : 97, +"SW_RFKILL_ALL" : 0x03, +"BTN_1" : 0x101, +"ABS_MT_ORIENTATION" : 0x34, +"ABS_MAX" : 0x3f, +"MSC_PULSELED" : 0x01, +"BTN_3" : 0x103, +"KEY_SEARCH" : 217, +"BTN_5" : 0x105, +"KEY_PHONE" : 169, +"BTN_TOOL_RUBBER" : 0x141, +"BTN_6" : 0x106, +"ABS_PRESSURE" : 0x18, +"SW_CAMERA_LENS_COVER" : 0x09, +"BTN_8" : 0x108, +"SND_CNT" : (0x07 +1), +"KEY_KBDILLUMUP" : 230, +"SW_TABLET_MODE" : 0x01, +"KEY_STOP" : 128, +"KEY_BRIGHTNESS_ZERO" : 244, +"BTN_STYLUS2" : 0x14c, +"KEY_CHAT" : 216, +"KEY_VOLUMEUP" : 115, +"EV_REL" : 0x02, +"EV_REP" : 0x14, +"KEY_CAMERA_ZOOMIN" : 0x215, +"KEY_UNDO" : 131, +"REP_PERIOD" : 0x01, +"KEY_TUNER" : 0x182, +"KEY_ANGLE" : 0x173, +"KEY_PRESENTATION" : 0x1a9, +"KEY_CAMERA_DOWN" : 0x218, +"REL_DIAL" : 0x07, +"ABS_MT_TOUCH_MAJOR" : 0x30, +"KEY_REPLY" : 232, +"SW_RADIO" : 0x03, +"BTN_THUMB2" : 0x122, +"BTN_THUMBL" : 0x13d, +"BTN_THUMBR" : 0x13e, +"MSC_CNT" : (0x07 +1), +"BTN_TRIGGER_HAPPY1" : 0x2c0, +"BTN_TRIGGER_HAPPY2" : 0x2c1, +"BTN_TRIGGER_HAPPY3" : 0x2c2, +"BTN_TRIGGER_HAPPY4" : 0x2c3, +"BTN_TRIGGER_HAPPY5" : 0x2c4, +"BTN_TRIGGER_HAPPY6" : 0x2c5, +"BTN_TRIGGER_HAPPY7" : 0x2c6, +"BTN_TRIGGER_HAPPY8" : 0x2c7, +"BTN_TRIGGER_HAPPY9" : 0x2c8, +"BTN_EXTRA" : 0x114, +"KEY_CALC" : 140, +"KEY_EXIT" : 174, +"ABS_HAT2X" : 0x14, +"KEY_FN_B" : 0x1e4, +"KEY_DOLLAR" : 0x1b2, +"KEY_CAMERA_LEFT" : 0x219, +"KEY_UWB" : 239, +"KEY_PREVIOUSSONG" : 165, +"KEY_CONFIG" : 171, +"BTN_TASK" : 0x117, +"ABS_MT_BLOB_ID" : 0x38, +"KEY_SETUP" : 141, +"EV_KEY" : 0x01, +"KEY_VOICEMAIL" : 0x1ac, +"KEY_PLAYCD" : 200, +"KEY_MEDIA" : 226, +"BTN_TOOL_BRUSH" : 0x142, +"KEY_COMPOSE" : 127, +"KEY_PLAYER" : 0x183, +"SW_FRONT_PROXIMITY" : 0x0b, +"KEY_CNT" : (0x2ff +1), +"KEY_10CHANNELSDOWN" : 0x1b9, +"MSC_RAW" : 0x03, +"BTN_FORWARD" : 0x115, +"KEY_FRAMEFORWARD" : 0x1b5, +"SND_MAX" : 0x07, +"KEY_MSDOS" : 151, +"KEY_ZOOM" : 0x174, +"BTN_TOOL_PEN" : 0x140, +"KEY_NEWS" : 0x1ab, +"KEY_NUMERIC_0" : 0x200, +"KEY_NUMERIC_1" : 0x201, +"KEY_NUMERIC_2" : 0x202, +"KEY_NUMERIC_3" : 0x203, +"KEY_NUMERIC_4" : 0x204, +"KEY_NUMERIC_5" : 0x205, +"KEY_TWEN" : 0x19f, +"KEY_NUMERIC_7" : 0x207, +"KEY_NUMERIC_8" : 0x208, +"KEY_NUMERIC_9" : 0x209, +"LED_CNT" : (0x0f +1), +"KEY_SCALE" : 120, +"KEY_NEXT" : 0x197, +"KEY_CUT" : 137, +"KEY_PREVIOUS" : 0x19c, +"KEY_VIDEO_PREV" : 242, +"SND_TONE" : 0x02, +"KEY_MUTE" : 113, +"KEY_PAUSE" : 119, +"KEY_TAPE" : 0x180, +"BTN_RIGHT" : 0x111, +"KEY_PROGRAM" : 0x16a, +"KEY_OPTION" : 0x165, +"KEY_ZOOMOUT" : 0x1a3, +"KEY_PLAYPAUSE" : 164, +"KEY_DISPLAY_OFF" : 245, +"SW_HEADPHONE_INSERT" : 0x02, +"REL_MAX" : 0x0f, +"SW_LID" : 0x00, +"KEY_HANGEUL" : 122, +"KEY_RED" : 0x18e, +"LED_CAPSL" : 0x01, +"KEY_KPPLUS" : 78, +"KEY_FINANCE" : 219, +"REP_CNT" : (0x01 +1), +"KEY_BRIGHTNESSDOWN" : 224, +"LED_COMPOSE" : 0x03, +"KEY_KPDOT" : 83, +"KEY_TEEN" : 0x19e, +"KEY_COFFEE" : 152, +"ABS_RUDDER" : 0x07, +"KEY_FN_F1" : 0x1d2, +"KEY_FN_F2" : 0x1d3, +"KEY_FN_F3" : 0x1d4, +"KEY_FN_F4" : 0x1d5, +"KEY_FN_F5" : 0x1d6, +"KEY_FN_F6" : 0x1d7, +"KEY_FN_F8" : 0x1d9, +"KEY_FN_F9" : 0x1da, +"ABS_MT_WIDTH_MINOR" : 0x33, +"SW_CNT" : (0x0f +1), +"KEY_EURO" : 0x1b3, +"BTN_TOOL_MOUSE" : 0x146, +"BTN_GAMEPAD" : 0x130, +"KEY_WIMAX" : 246, +"KEY_AB" : 0x196, +"KEY_SUBTITLE" : 0x172, +"KEY_CD" : 0x17f, +"BTN_TRIGGER_HAPPY10" : 0x2c9, +"BTN_TRIGGER_HAPPY12" : 0x2cb, +"BTN_TRIGGER_HAPPY13" : 0x2cc, +"BTN_TRIGGER_HAPPY14" : 0x2cd, +"BTN_TRIGGER_HAPPY15" : 0x2ce, +"BTN_TRIGGER_HAPPY16" : 0x2cf, +"BTN_TRIGGER_HAPPY17" : 0x2d0, +"BTN_TRIGGER_HAPPY18" : 0x2d1, +"BTN_TRIGGER_HAPPY19" : 0x2d2, +"KEY_CONTEXT_MENU" : 0x1b6, +"BTN_TRIGGER_HAPPY20" : 0x2d3, +"BTN_TRIGGER_HAPPY21" : 0x2d4, +"BTN_TRIGGER_HAPPY22" : 0x2d5, +"BTN_TRIGGER_HAPPY23" : 0x2d6, +"BTN_TRIGGER_HAPPY24" : 0x2d7, +"BTN_TRIGGER_HAPPY25" : 0x2d8, +"BTN_TRIGGER_HAPPY27" : 0x2da, +"KEY_MESSENGER" : 0x1ae, +"BTN_TRIGGER_HAPPY29" : 0x2dc, +"LED_NUML" : 0x00, +"BTN_TRIGGER_HAPPY30" : 0x2dd, +"BTN_TRIGGER_HAPPY32" : 0x2df, +"BTN_TRIGGER_HAPPY33" : 0x2e0, +"BTN_TRIGGER_HAPPY35" : 0x2e2, +"BTN_TRIGGER_HAPPY36" : 0x2e3, +"BTN_TRIGGER_HAPPY37" : 0x2e4, +"BTN_TRIGGER_HAPPY38" : 0x2e5, +"BTN_TRIGGER_HAPPY39" : 0x2e6, +"KEY_F1" : 59, +"KEY_F2" : 60, +"KEY_F3" : 61, +"KEY_F4" : 62, +"KEY_F6" : 64, +"KEY_F7" : 65, +"KEY_F8" : 66, +"KEY_F9" : 67, +"KEY_FN" : 0x1d0, +"KEY_SCROLLUP" : 177, +"ABS_MT_WIDTH_MAJOR" : 0x32, +"KEY_ENTER" : 28, +"KEY_CANCEL" : 223, +"KEY_SCROLLLOCK" : 70, +"KEY_RIGHTBRACE" : 27, +"KEY_VCR" : 0x17b, +"KEY_HP" : 211, +"KEY_FASTFORWARD" : 208, +"SYN_REPORT" : 0, +"BTN_LEFT" : 0x110, +"KEY_TEXT" : 0x184, +"KEY_FN_ESC" : 0x1d1, +"KEY_INSERT" : 110, +"KEY_CYCLEWINDOWS" : 154, +"KEY_KATAKANAHIRAGANA" : 93, +"KEY_FRONT" : 132, +"KEY_WLAN" : 238, +"KEY_DASHBOARD" : 204, +"KEY_BLUETOOTH" : 237, +"KEY_FORWARDMAIL" : 233, +"KEY_MUHENKAN" : 94, +"KEY_OK" : 0x160, +"KEY_CHANNELDOWN" : 0x193, +"LED_SCROLLL" : 0x02, +"KEY_DEL_EOL" : 0x1c0, +"KEY_DOWN" : 108, +"KEY_DEL_EOS" : 0x1c1, +"KEY_PC" : 0x178, +"KEY_KPENTER" : 96, +"KEY_LAST" : 0x195, +"KEY_KP0" : 82, +"KEY_KP1" : 79, +"KEY_KP2" : 80, +"KEY_KP4" : 75, +"KEY_KP6" : 77, +"KEY_KP7" : 71, +"KEY_KP8" : 72, +"KEY_KP9" : 73, +"BTN_STYLUS" : 0x14b, +"KEY_BACKSPACE" : 14, +"BTN_TOP" : 0x123, +"KEY_RO" : 89, +"KEY_ALTERASE" : 222, +"REL_MISC" : 0x09, +"KEY_POWER2" : 0x164, +"KEY_MINUS" : 12, +"KEY_KPJPCOMMA" : 95, +"KEY_10CHANNELSUP" : 0x1b8, +"KEY_TV" : 0x179, +"KEY_UP" : 103, +"EV_SND" : 0x12, +"KEY_SUSPEND" : 205, +"KEY_FILE" : 144, +"BTN_GEAR_UP" : 0x151, +"KEY_TIME" : 0x167, +"KEY_FIND" : 136, +"KEY_STOPCD" : 166, +"KEY_SPELLCHECK" : 0x1b0, +"EV_ABS" : 0x03, +"REL_RY" : 0x04, +"REL_RZ" : 0x05, +"KEY_DOCUMENTS" : 235, +"KEY_LEFT" : 105, +"ABS_MT_TOOL_X" : 0x3c, +"ABS_MT_TOOL_Y" : 0x3d, +"KEY_EJECTCLOSECD" : 162, +"KEY_KPMINUS" : 74, +"BTN_TOOL_FINGER" : 0x145, +"BTN_GEAR_DOWN" : 0x150, +"ABS_MT_DISTANCE" : 0x3b, +"KEY_GOTO" : 0x162, +"BTN_MODE" : 0x13c, +"KEY_MEDIA_REPEAT" : 0x1b7, +"LED_CHARGING" : 0x0a, +"EV_LED" : 0x11, +"EV_SYN" : 0x00, +"KEY_SLASH" : 53, +"KEY_KEYBOARD" : 0x176, +"KEY_CAMERA_UP" : 0x217, +"KEY_DEL_LINE" : 0x1c3, +"KEY_CLOSE" : 206, +"KEY_DOT" : 52, +"BTN_DEAD" : 0x12f, +"REL_RX" : 0x03, +"KEY_BOOKMARKS" : 156, +"ABS_GAS" : 0x09, +} diff --git a/py/input-create b/input-create similarity index 100% rename from py/input-create rename to input-create diff --git a/py/input-read b/input-read similarity index 100% rename from py/input-read rename to input-read diff --git a/py/ioctlhelp.py b/ioctlhelp.py similarity index 100% rename from py/ioctlhelp.py rename to ioctlhelp.py diff --git a/py/linux_input.py b/linux_input.py similarity index 100% rename from py/linux_input.py rename to linux_input.py diff --git a/py/linux_uinput.py b/linux_uinput.py similarity index 100% rename from py/linux_uinput.py rename to linux_uinput.py diff --git a/py/mapper.py b/mapper.py similarity index 100% rename from py/mapper.py rename to mapper.py diff --git a/py/README b/py/README deleted file mode 100644 index fd82a5c..0000000 --- a/py/README +++ /dev/null @@ -1,15 +0,0 @@ -Generate: -- input.h constants ; macros: - - EV_* - - KEY_* - - BTN_* - - REL_* - - ABS_* - - gcc -E -dM /usr/include/linux/input.h | egrep ' (EV|SYN|KEY|BTN|REL|ABS|MSC|LED|SND|REP|SW)_[A-Za-z0-9_]+' | ( echo "#include " ; echo "input_constants_dict = {" ; sed -r 's/[^ ]+ +([^ ]+).*/"\1" : \1,/' ; echo "}" ) | gcc -E -o /dev/stdout - | grep 'input_constants_dict = {' -A 100000 > gen.py - - - Lambas for EVIO* - - -- uinput