diff -Nru eventlircd-0.0.1+svn20110129.2130/debian/changelog eventlircd-0.0.1+svn20110409.0930/debian/changelog --- eventlircd-0.0.1+svn20110129.2130/debian/changelog 2011-01-29 21:51:23.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/debian/changelog 2011-04-09 07:51:19.000000000 +0000 @@ -1,4 +1,4 @@ -eventlircd (0.0.1+svn20110129.2130-1yavdr0) lucid; urgency=low +eventlircd (0.0.1+svn20110409.0930-0yavdr0~lucid) lucid; urgency=low * Initial release diff -Nru eventlircd-0.0.1+svn20110129.2130/debian/dirs eventlircd-0.0.1+svn20110409.0930/debian/dirs --- eventlircd-0.0.1+svn20110129.2130/debian/dirs 1970-01-01 00:00:00.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/debian/dirs 2011-04-02 20:01:06.000000000 +0000 @@ -0,0 +1 @@ +usr/share/eventlircd/remotes/ diff -Nru eventlircd-0.0.1+svn20110129.2130/debian/install eventlircd-0.0.1+svn20110409.0930/debian/install --- eventlircd-0.0.1+svn20110129.2130/debian/install 1970-01-01 00:00:00.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/debian/install 2011-04-02 20:01:07.000000000 +0000 @@ -0,0 +1,2 @@ +debian/udev/*.rules /lib/udev/rules.d +debian/usr-share-remotes/* /usr/share/eventlircd/remotes diff -Nru eventlircd-0.0.1+svn20110129.2130/debian/patches/03_05a4_9881.evmap eventlircd-0.0.1+svn20110409.0930/debian/patches/03_05a4_9881.evmap --- eventlircd-0.0.1+svn20110129.2130/debian/patches/03_05a4_9881.evmap 1970-01-01 00:00:00.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/debian/patches/03_05a4_9881.evmap 2011-03-14 09:45:21.000000000 +0000 @@ -0,0 +1,43 @@ +--- eventlircd-0.0.1+svn20110129.2130.orig/etc/03_05a4_9881.evmap ++++ eventlircd-0.0.1+svn20110129.2130/etc/03_05a4_9881.evmap +@@ -1,9 +1,9 @@ + KEY_HOMEPAGE = KEY_WWW # WWW + KEY_SLEEP = KEY_POWER # Sleep +- ctrl+shift+KEY_T = KEY_VCR # My TV +- ctrl+KEY_M = KEY_MP3 # My Music +- ctrl+KEY_I = KEY_MEDIA # My Pictures +- ctrl+KEY_E = KEY_VIDEO # My Videos ++ ctrl+shift+KEY_T = KEY_YELLOW # My TV ++ ctrl+KEY_M = KEY_BLUE # My Music ++ ctrl+KEY_I = KEY_GREEN # My Pictures ++ ctrl+KEY_E = KEY_RED # My Videos + ctrl+KEY_O = KEY_VCR2 # Record TV + ctrl+KEY_G = KEY_PROGRAM # Guide + ctrl+KEY_T = KEY_TV # Live TV +@@ -34,16 +34,16 @@ + alt+KEY_F4 = KEY_CLOSE # Close + KEY_ESC = KEY_CLEAR # Clear + #KEY_ENTER = KEY_ENTER # Enter (also used for Direction OK) +- numlock+KEY_KP0 = KEY_NUMERIC_0 # 0 +- numlock+KEY_KP1 = KEY_NUMERIC_1 # 1 +- numlock+KEY_KP2 = KEY_NUMERIC_2 # 2 +- numlock+KEY_KP3 = KEY_NUMERIC_3 # 3 +- numlock+KEY_KP4 = KEY_NUMERIC_4 # 4 +- numlock+KEY_KP5 = KEY_NUMERIC_5 # 5 +- numlock+KEY_KP6 = KEY_NUMERIC_6 # 6 +- numlock+KEY_KP7 = KEY_NUMERIC_7 # 7 +- numlock+KEY_KP8 = KEY_NUMERIC_8 # 8 +- numlock+KEY_KP9 = KEY_NUMERIC_9 # 9 ++ numlock+KEY_KP0 = KEY_0 # 0 ++ numlock+KEY_KP1 = KEY_1 # 1 ++ numlock+KEY_KP2 = KEY_2 # 2 ++ numlock+KEY_KP3 = KEY_3 # 3 ++ numlock+KEY_KP4 = KEY_4 # 4 ++ numlock+KEY_KP5 = KEY_5 # 5 ++ numlock+KEY_KP6 = KEY_6 # 6 ++ numlock+KEY_KP7 = KEY_7 # 7 ++ numlock+KEY_KP8 = KEY_8 # 8 ++ numlock+KEY_KP9 = KEY_9 # 9 + KEY_KPASTERISK = KEY_ZOOM # * + numlock+alt+KEY_KP3 = KEY_TEXT # # + numlock+alt+KEY_KP5 = NULL # Sent as part #, and we ignore it diff -Nru eventlircd-0.0.1+svn20110129.2130/debian/patches/03_0755_2626.evmap eventlircd-0.0.1+svn20110409.0930/debian/patches/03_0755_2626.evmap --- eventlircd-0.0.1+svn20110129.2130/debian/patches/03_0755_2626.evmap 1970-01-01 00:00:00.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/debian/patches/03_0755_2626.evmap 2011-03-14 09:47:18.000000000 +0000 @@ -0,0 +1,54 @@ +--- /dev/null ++++ eventlircd-0.0.1+svn20110129.2130/etc/03_0755_2626.evmap +@@ -0,0 +1,51 @@ ++ KEY_WWW = KEY_GREEN # WWW ++ KEY_SLEEP = KEY_POWER # Sleep ++ KEY_MAIL = KEY_YELLOW # My TV ++ ctrl+KEY_A = KEY_RADIO # My Music ++ alt+KEY_ENTER = KEY_BLUE ++ KEY_HOMEPAGE = KEY_GREEN # ++ ctrl+KEY_E = KEY_VIDEO # My Videos ++ ctrl+KEY_I = KEY_MEDIA # ++ ctrl+KEY_M = KEY_MP3 ++ ctrl+shift+KEY_T = KEY_TV # Live TV ++ ctrl+shift+KEY_M = KEY_DVD # DVD Menu ++ KEY_PLAYPAUSE = KEY_PLAYPAUSE # Play (also used for Pause) ++#KEY_PLAYPAUSE = KEY_PLAYPAUSE # Pause (also used for Play) ++ shift+KEY_8 = KEY_SUBTITLE ++ shift+KEY_3 = KEY_TEXT ++ ctrl+shift+KEY_B = KEY_REWIND # Reverse ++ ctrl+shift+KEY_F = KEY_FORWARD # Forward ++ KEY_PREVIOUSSONG = KEY_PREVIOUS # Pre-track ++ KEY_NEXTSONG = KEY_NEXT # Next track ++ KEY_STOPCD = KEY_STOP # Stop ++ ctrl+KEY_R = KEY_RED # Red ++ KEY_BACKSPACE = KEY_BACK # Back ++ KEY_D = KEY_INFO # Information (also used for Mouse Right) ++ KEY_UP = KEY_UP # Direction Up ++ KEY_DOWN = KEY_DOWN # Direction Down ++ KEY_LEFT = KEY_LEFT # Direction Left ++ KEY_RIGHT = KEY_RIGHT # Direction Right ++# KEY_OK = KEY_ENTER # Direction OK (also used for Enter) ++ BTN_MOUSE = BTN_LEFT # Mouse Left ++#BTN_RIGHT = KEY_INFO # Mouse Right (also used for Information) ++ KEY_VOLUMEUP = KEY_VOLUMEUP # Volume Up ++ KEY_VOLUMEDOWN = KEY_VOLUMEDOWN # Volume Down ++ KEY_PAGEDOWN = KEY_CHANNELDOWN # Channel Up ++ KEY_PAGEUP = KEY_CHANNELUP # Channel Down ++ KEY_MUTE = KEY_MUTE # Mute ++ alt+meta+KEY_ENTER = KEY_MENU # Start Key ++ alt+KEY_F4 = KEY_CLOSE # Close ++ KEY_ESC = KEY_CLEAR # Clear ++ KEY_ENTER = KEY_ENTER # Enter (also used for Direction OK) ++ ctrl+KEY_D = KEY_INFO # info ++ KEY_KPASTERISK = KEY_ZOOM # * ++ numlock+alt+KEY_KP3 = KEY_TEXT # # ++ numlock+alt+KEY_KP5 = NULL # Sent as part #, and we ignore it ++ ++#The USB interface advertises these events but none of the remote control's ++#buttons appear to generate them. Therefore, they are set to NULL so that ++#eventlircd does not advertise them as part of its mouse/joystick device. ++ BTN_MIDDLE = NULL ++ BTN_SIDE = NULL ++ BTN_EXTRA = NULL ++ REL_WHEEL = NULL diff -Nru eventlircd-0.0.1+svn20110129.2130/debian/patches/04_0c16_0002.evmap eventlircd-0.0.1+svn20110409.0930/debian/patches/04_0c16_0002.evmap --- eventlircd-0.0.1+svn20110129.2130/debian/patches/04_0c16_0002.evmap 1970-01-01 00:00:00.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/debian/patches/04_0c16_0002.evmap 2011-03-14 09:46:23.000000000 +0000 @@ -0,0 +1,15 @@ +--- /dev/null ++++ eventlircd-0.0.1+svn20110129.2130/etc/04_0c16_0002.evmap +@@ -0,0 +1,12 @@ ++KEY_BACKSPACE = KEY_BACK ++KEY_KP1 = KEY_NUMERIC_1 ++KEY_KP2 = KEY_NUMERIC_2 ++KEY_KP3 = KEY_NUMERIC_3 ++KEY_KP4 = KEY_NUMERIC_4 ++KEY_KP5 = KEY_NUMERIC_5 ++KEY_KP6 = KEY_NUMERIC_6 ++KEY_KP7 = KEY_NUMERIC_7 ++KEY_KP8 = KEY_NUMERIC_8 ++KEY_KP9 = KEY_NUMERIC_9 ++KEY_KP0 = KEY_NUMERIC_0 ++KEY_KPASTERISK = KEY_NUMERIC_STAR diff -Nru eventlircd-0.0.1+svn20110129.2130/debian/patches/debian-changes-0.0.1+svn20110129.2130-0yavdr4 eventlircd-0.0.1+svn20110409.0930/debian/patches/debian-changes-0.0.1+svn20110129.2130-0yavdr4 --- eventlircd-0.0.1+svn20110129.2130/debian/patches/debian-changes-0.0.1+svn20110129.2130-0yavdr4 2011-01-29 21:46:15.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/debian/patches/debian-changes-0.0.1+svn20110129.2130-0yavdr4 1970-01-01 00:00:00.000000000 +0000 @@ -1,1579 +0,0 @@ -Description: Upstream changes introduced in version 0.0.1+svn20110129.2130-0yavdr4 - This patch has been created by dpkg-source during the package build. - Here's the last changelog entry, hopefully it gives details on why - those changes were made: - . - eventlircd (0.0.1+svn20110129.2130-0yavdr4) lucid; urgency=low - . - * Initial release - . - The person named in the Author field signed this changelog entry. -Author: Holger Schvestka - ---- -The information above should follow the Patch Tagging Guidelines, please -checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here -are templates for supplementary fields that you might want to add: - -Origin: , -Bug: -Bug-Debian: http://bugs.debian.org/ -Forwarded: -Reviewed-By: -Last-Update: - ---- /dev/null -+++ eventlircd-0.0.1+svn20110129.2130/src/evkey_code_to_name.h -@@ -0,0 +1,483 @@ -+#ifndef _EVENTLIRCD_EVKEY_CODE_TO_NAME_H_ -+#define _EVENTLIRCD_EVKEY_CODE_TO_NAME_H_ 1 -+#include -+static const char *evkey_code_to_name[KEY_MAX] = { -+ [ KEY_ESC ] = "KEY_ESC", -+ [ KEY_1 ] = "KEY_1", -+ [ KEY_2 ] = "KEY_2", -+ [ KEY_3 ] = "KEY_3", -+ [ KEY_4 ] = "KEY_4", -+ [ KEY_5 ] = "KEY_5", -+ [ KEY_6 ] = "KEY_6", -+ [ KEY_7 ] = "KEY_7", -+ [ KEY_8 ] = "KEY_8", -+ [ KEY_9 ] = "KEY_9", -+ [ KEY_0 ] = "KEY_0", -+ [ KEY_MINUS ] = "KEY_MINUS", -+ [ KEY_EQUAL ] = "KEY_EQUAL", -+ [ KEY_BACKSPACE ] = "KEY_BACKSPACE", -+ [ KEY_TAB ] = "KEY_TAB", -+ [ KEY_Q ] = "KEY_Q", -+ [ KEY_W ] = "KEY_W", -+ [ KEY_E ] = "KEY_E", -+ [ KEY_R ] = "KEY_R", -+ [ KEY_T ] = "KEY_T", -+ [ KEY_Y ] = "KEY_Y", -+ [ KEY_U ] = "KEY_U", -+ [ KEY_I ] = "KEY_I", -+ [ KEY_O ] = "KEY_O", -+ [ KEY_P ] = "KEY_P", -+ [ KEY_LEFTBRACE ] = "KEY_LEFTBRACE", -+ [ KEY_RIGHTBRACE ] = "KEY_RIGHTBRACE", -+ [ KEY_ENTER ] = "KEY_ENTER", -+ [ KEY_LEFTCTRL ] = "KEY_LEFTCTRL", -+ [ KEY_A ] = "KEY_A", -+ [ KEY_S ] = "KEY_S", -+ [ KEY_D ] = "KEY_D", -+ [ KEY_F ] = "KEY_F", -+ [ KEY_G ] = "KEY_G", -+ [ KEY_H ] = "KEY_H", -+ [ KEY_J ] = "KEY_J", -+ [ KEY_K ] = "KEY_K", -+ [ KEY_L ] = "KEY_L", -+ [ KEY_SEMICOLON ] = "KEY_SEMICOLON", -+ [ KEY_APOSTROPHE ] = "KEY_APOSTROPHE", -+ [ KEY_GRAVE ] = "KEY_GRAVE", -+ [ KEY_LEFTSHIFT ] = "KEY_LEFTSHIFT", -+ [ KEY_BACKSLASH ] = "KEY_BACKSLASH", -+ [ KEY_Z ] = "KEY_Z", -+ [ KEY_X ] = "KEY_X", -+ [ KEY_C ] = "KEY_C", -+ [ KEY_V ] = "KEY_V", -+ [ KEY_B ] = "KEY_B", -+ [ KEY_N ] = "KEY_N", -+ [ KEY_M ] = "KEY_M", -+ [ KEY_COMMA ] = "KEY_COMMA", -+ [ KEY_DOT ] = "KEY_DOT", -+ [ KEY_SLASH ] = "KEY_SLASH", -+ [ KEY_RIGHTSHIFT ] = "KEY_RIGHTSHIFT", -+ [ KEY_KPASTERISK ] = "KEY_KPASTERISK", -+ [ KEY_LEFTALT ] = "KEY_LEFTALT", -+ [ KEY_SPACE ] = "KEY_SPACE", -+ [ KEY_CAPSLOCK ] = "KEY_CAPSLOCK", -+ [ KEY_F1 ] = "KEY_F1", -+ [ KEY_F2 ] = "KEY_F2", -+ [ KEY_F3 ] = "KEY_F3", -+ [ KEY_F4 ] = "KEY_F4", -+ [ KEY_F5 ] = "KEY_F5", -+ [ KEY_F6 ] = "KEY_F6", -+ [ KEY_F7 ] = "KEY_F7", -+ [ KEY_F8 ] = "KEY_F8", -+ [ KEY_F9 ] = "KEY_F9", -+ [ KEY_F10 ] = "KEY_F10", -+ [ KEY_NUMLOCK ] = "KEY_NUMLOCK", -+ [ KEY_SCROLLLOCK ] = "KEY_SCROLLLOCK", -+ [ KEY_KP7 ] = "KEY_KP7", -+ [ KEY_KP8 ] = "KEY_KP8", -+ [ KEY_KP9 ] = "KEY_KP9", -+ [ KEY_KPMINUS ] = "KEY_KPMINUS", -+ [ KEY_KP4 ] = "KEY_KP4", -+ [ KEY_KP5 ] = "KEY_KP5", -+ [ KEY_KP6 ] = "KEY_KP6", -+ [ KEY_KPPLUS ] = "KEY_KPPLUS", -+ [ KEY_KP1 ] = "KEY_KP1", -+ [ KEY_KP2 ] = "KEY_KP2", -+ [ KEY_KP3 ] = "KEY_KP3", -+ [ KEY_KP0 ] = "KEY_KP0", -+ [ KEY_KPDOT ] = "KEY_KPDOT", -+ [ KEY_ZENKAKUHANKAKU ] = "KEY_ZENKAKUHANKAKU", -+ [ KEY_102ND ] = "KEY_102ND", -+ [ KEY_F11 ] = "KEY_F11", -+ [ KEY_F12 ] = "KEY_F12", -+ [ KEY_RO ] = "KEY_RO", -+ [ KEY_KATAKANA ] = "KEY_KATAKANA", -+ [ KEY_HIRAGANA ] = "KEY_HIRAGANA", -+ [ KEY_HENKAN ] = "KEY_HENKAN", -+ [ KEY_KATAKANAHIRAGANA ] = "KEY_KATAKANAHIRAGANA", -+ [ KEY_MUHENKAN ] = "KEY_MUHENKAN", -+ [ KEY_KPJPCOMMA ] = "KEY_KPJPCOMMA", -+ [ KEY_KPENTER ] = "KEY_KPENTER", -+ [ KEY_RIGHTCTRL ] = "KEY_RIGHTCTRL", -+ [ KEY_KPSLASH ] = "KEY_KPSLASH", -+ [ KEY_SYSRQ ] = "KEY_SYSRQ", -+ [ KEY_RIGHTALT ] = "KEY_RIGHTALT", -+ [ KEY_LINEFEED ] = "KEY_LINEFEED", -+ [ KEY_HOME ] = "KEY_HOME", -+ [ KEY_UP ] = "KEY_UP", -+ [ KEY_PAGEUP ] = "KEY_PAGEUP", -+ [ KEY_LEFT ] = "KEY_LEFT", -+ [ KEY_RIGHT ] = "KEY_RIGHT", -+ [ KEY_END ] = "KEY_END", -+ [ KEY_DOWN ] = "KEY_DOWN", -+ [ KEY_PAGEDOWN ] = "KEY_PAGEDOWN", -+ [ KEY_INSERT ] = "KEY_INSERT", -+ [ KEY_DELETE ] = "KEY_DELETE", -+ [ KEY_MACRO ] = "KEY_MACRO", -+ [ KEY_MUTE ] = "KEY_MUTE", -+ [ KEY_VOLUMEDOWN ] = "KEY_VOLUMEDOWN", -+ [ KEY_VOLUMEUP ] = "KEY_VOLUMEUP", -+ [ KEY_POWER ] = "KEY_POWER", -+ [ KEY_KPEQUAL ] = "KEY_KPEQUAL", -+ [ KEY_KPPLUSMINUS ] = "KEY_KPPLUSMINUS", -+ [ KEY_PAUSE ] = "KEY_PAUSE", -+ [ KEY_SCALE ] = "KEY_SCALE", -+ [ KEY_KPCOMMA ] = "KEY_KPCOMMA", -+ [ KEY_HANGEUL ] = "KEY_HANGEUL", -+ [ KEY_HANJA ] = "KEY_HANJA", -+ [ KEY_YEN ] = "KEY_YEN", -+ [ KEY_LEFTMETA ] = "KEY_LEFTMETA", -+ [ KEY_RIGHTMETA ] = "KEY_RIGHTMETA", -+ [ KEY_COMPOSE ] = "KEY_COMPOSE", -+ [ KEY_STOP ] = "KEY_STOP", -+ [ KEY_AGAIN ] = "KEY_AGAIN", -+ [ KEY_PROPS ] = "KEY_PROPS", -+ [ KEY_UNDO ] = "KEY_UNDO", -+ [ KEY_FRONT ] = "KEY_FRONT", -+ [ KEY_COPY ] = "KEY_COPY", -+ [ KEY_OPEN ] = "KEY_OPEN", -+ [ KEY_PASTE ] = "KEY_PASTE", -+ [ KEY_FIND ] = "KEY_FIND", -+ [ KEY_CUT ] = "KEY_CUT", -+ [ KEY_HELP ] = "KEY_HELP", -+ [ KEY_MENU ] = "KEY_MENU", -+ [ KEY_CALC ] = "KEY_CALC", -+ [ KEY_SETUP ] = "KEY_SETUP", -+ [ KEY_SLEEP ] = "KEY_SLEEP", -+ [ KEY_WAKEUP ] = "KEY_WAKEUP", -+ [ KEY_FILE ] = "KEY_FILE", -+ [ KEY_SENDFILE ] = "KEY_SENDFILE", -+ [ KEY_DELETEFILE ] = "KEY_DELETEFILE", -+ [ KEY_XFER ] = "KEY_XFER", -+ [ KEY_PROG1 ] = "KEY_PROG1", -+ [ KEY_PROG2 ] = "KEY_PROG2", -+ [ KEY_WWW ] = "KEY_WWW", -+ [ KEY_MSDOS ] = "KEY_MSDOS", -+ [ KEY_COFFEE ] = "KEY_COFFEE", -+ [ KEY_DIRECTION ] = "KEY_DIRECTION", -+ [ KEY_CYCLEWINDOWS ] = "KEY_CYCLEWINDOWS", -+ [ KEY_MAIL ] = "KEY_MAIL", -+ [ KEY_BOOKMARKS ] = "KEY_BOOKMARKS", -+ [ KEY_COMPUTER ] = "KEY_COMPUTER", -+ [ KEY_BACK ] = "KEY_BACK", -+ [ KEY_FORWARD ] = "KEY_FORWARD", -+ [ KEY_CLOSECD ] = "KEY_CLOSECD", -+ [ KEY_EJECTCD ] = "KEY_EJECTCD", -+ [ KEY_EJECTCLOSECD ] = "KEY_EJECTCLOSECD", -+ [ KEY_NEXTSONG ] = "KEY_NEXTSONG", -+ [ KEY_PLAYPAUSE ] = "KEY_PLAYPAUSE", -+ [ KEY_PREVIOUSSONG ] = "KEY_PREVIOUSSONG", -+ [ KEY_STOPCD ] = "KEY_STOPCD", -+ [ KEY_RECORD ] = "KEY_RECORD", -+ [ KEY_REWIND ] = "KEY_REWIND", -+ [ KEY_PHONE ] = "KEY_PHONE", -+ [ KEY_ISO ] = "KEY_ISO", -+ [ KEY_CONFIG ] = "KEY_CONFIG", -+ [ KEY_HOMEPAGE ] = "KEY_HOMEPAGE", -+ [ KEY_REFRESH ] = "KEY_REFRESH", -+ [ KEY_EXIT ] = "KEY_EXIT", -+ [ KEY_MOVE ] = "KEY_MOVE", -+ [ KEY_EDIT ] = "KEY_EDIT", -+ [ KEY_SCROLLUP ] = "KEY_SCROLLUP", -+ [ KEY_SCROLLDOWN ] = "KEY_SCROLLDOWN", -+ [ KEY_KPLEFTPAREN ] = "KEY_KPLEFTPAREN", -+ [ KEY_KPRIGHTPAREN ] = "KEY_KPRIGHTPAREN", -+ [ KEY_NEW ] = "KEY_NEW", -+ [ KEY_REDO ] = "KEY_REDO", -+ [ KEY_F13 ] = "KEY_F13", -+ [ KEY_F14 ] = "KEY_F14", -+ [ KEY_F15 ] = "KEY_F15", -+ [ KEY_F16 ] = "KEY_F16", -+ [ KEY_F17 ] = "KEY_F17", -+ [ KEY_F18 ] = "KEY_F18", -+ [ KEY_F19 ] = "KEY_F19", -+ [ KEY_F20 ] = "KEY_F20", -+ [ KEY_F21 ] = "KEY_F21", -+ [ KEY_F22 ] = "KEY_F22", -+ [ KEY_F23 ] = "KEY_F23", -+ [ KEY_F24 ] = "KEY_F24", -+ [ KEY_PLAYCD ] = "KEY_PLAYCD", -+ [ KEY_PAUSECD ] = "KEY_PAUSECD", -+ [ KEY_PROG3 ] = "KEY_PROG3", -+ [ KEY_PROG4 ] = "KEY_PROG4", -+ [ KEY_DASHBOARD ] = "KEY_DASHBOARD", -+ [ KEY_SUSPEND ] = "KEY_SUSPEND", -+ [ KEY_CLOSE ] = "KEY_CLOSE", -+ [ KEY_PLAY ] = "KEY_PLAY", -+ [ KEY_FASTFORWARD ] = "KEY_FASTFORWARD", -+ [ KEY_BASSBOOST ] = "KEY_BASSBOOST", -+ [ KEY_PRINT ] = "KEY_PRINT", -+ [ KEY_HP ] = "KEY_HP", -+ [ KEY_CAMERA ] = "KEY_CAMERA", -+ [ KEY_SOUND ] = "KEY_SOUND", -+ [ KEY_QUESTION ] = "KEY_QUESTION", -+ [ KEY_EMAIL ] = "KEY_EMAIL", -+ [ KEY_CHAT ] = "KEY_CHAT", -+ [ KEY_SEARCH ] = "KEY_SEARCH", -+ [ KEY_CONNECT ] = "KEY_CONNECT", -+ [ KEY_FINANCE ] = "KEY_FINANCE", -+ [ KEY_SPORT ] = "KEY_SPORT", -+ [ KEY_SHOP ] = "KEY_SHOP", -+ [ KEY_ALTERASE ] = "KEY_ALTERASE", -+ [ KEY_CANCEL ] = "KEY_CANCEL", -+ [ KEY_BRIGHTNESSDOWN ] = "KEY_BRIGHTNESSDOWN", -+ [ KEY_BRIGHTNESSUP ] = "KEY_BRIGHTNESSUP", -+ [ KEY_MEDIA ] = "KEY_MEDIA", -+ [ KEY_SWITCHVIDEOMODE ] = "KEY_SWITCHVIDEOMODE", -+ [ KEY_KBDILLUMTOGGLE ] = "KEY_KBDILLUMTOGGLE", -+ [ KEY_KBDILLUMDOWN ] = "KEY_KBDILLUMDOWN", -+ [ KEY_KBDILLUMUP ] = "KEY_KBDILLUMUP", -+ [ KEY_SEND ] = "KEY_SEND", -+ [ KEY_REPLY ] = "KEY_REPLY", -+ [ KEY_FORWARDMAIL ] = "KEY_FORWARDMAIL", -+ [ KEY_SAVE ] = "KEY_SAVE", -+ [ KEY_DOCUMENTS ] = "KEY_DOCUMENTS", -+ [ KEY_BATTERY ] = "KEY_BATTERY", -+ [ KEY_BLUETOOTH ] = "KEY_BLUETOOTH", -+ [ KEY_WLAN ] = "KEY_WLAN", -+ [ KEY_UWB ] = "KEY_UWB", -+ [ KEY_UNKNOWN ] = "KEY_UNKNOWN", -+ [ KEY_VIDEO_NEXT ] = "KEY_VIDEO_NEXT", -+ [ KEY_VIDEO_PREV ] = "KEY_VIDEO_PREV", -+ [ KEY_BRIGHTNESS_CYCLE ] = "KEY_BRIGHTNESS_CYCLE", -+ [ KEY_BRIGHTNESS_ZERO ] = "KEY_BRIGHTNESS_ZERO", -+ [ KEY_DISPLAY_OFF ] = "KEY_DISPLAY_OFF", -+ [ KEY_WIMAX ] = "KEY_WIMAX", -+ [ BTN_MISC ] = "BTN_MISC", -+ [ BTN_1 ] = "BTN_1", -+ [ BTN_2 ] = "BTN_2", -+ [ BTN_3 ] = "BTN_3", -+ [ BTN_4 ] = "BTN_4", -+ [ BTN_5 ] = "BTN_5", -+ [ BTN_6 ] = "BTN_6", -+ [ BTN_7 ] = "BTN_7", -+ [ BTN_8 ] = "BTN_8", -+ [ BTN_9 ] = "BTN_9", -+ [ BTN_MOUSE ] = "BTN_MOUSE", -+ [ BTN_RIGHT ] = "BTN_RIGHT", -+ [ BTN_MIDDLE ] = "BTN_MIDDLE", -+ [ BTN_SIDE ] = "BTN_SIDE", -+ [ BTN_EXTRA ] = "BTN_EXTRA", -+ [ BTN_FORWARD ] = "BTN_FORWARD", -+ [ BTN_BACK ] = "BTN_BACK", -+ [ BTN_TASK ] = "BTN_TASK", -+ [ BTN_JOYSTICK ] = "BTN_JOYSTICK", -+ [ BTN_THUMB ] = "BTN_THUMB", -+ [ BTN_THUMB2 ] = "BTN_THUMB2", -+ [ BTN_TOP ] = "BTN_TOP", -+ [ BTN_TOP2 ] = "BTN_TOP2", -+ [ BTN_PINKIE ] = "BTN_PINKIE", -+ [ BTN_BASE ] = "BTN_BASE", -+ [ BTN_BASE2 ] = "BTN_BASE2", -+ [ BTN_BASE3 ] = "BTN_BASE3", -+ [ BTN_BASE4 ] = "BTN_BASE4", -+ [ BTN_BASE5 ] = "BTN_BASE5", -+ [ BTN_BASE6 ] = "BTN_BASE6", -+ [ BTN_DEAD ] = "BTN_DEAD", -+ [ BTN_GAMEPAD ] = "BTN_GAMEPAD", -+ [ BTN_B ] = "BTN_B", -+ [ BTN_C ] = "BTN_C", -+ [ BTN_X ] = "BTN_X", -+ [ BTN_Y ] = "BTN_Y", -+ [ BTN_Z ] = "BTN_Z", -+ [ BTN_TL ] = "BTN_TL", -+ [ BTN_TR ] = "BTN_TR", -+ [ BTN_TL2 ] = "BTN_TL2", -+ [ BTN_TR2 ] = "BTN_TR2", -+ [ BTN_SELECT ] = "BTN_SELECT", -+ [ BTN_START ] = "BTN_START", -+ [ BTN_MODE ] = "BTN_MODE", -+ [ BTN_THUMBL ] = "BTN_THUMBL", -+ [ BTN_THUMBR ] = "BTN_THUMBR", -+ [ BTN_DIGI ] = "BTN_DIGI", -+ [ BTN_TOOL_RUBBER ] = "BTN_TOOL_RUBBER", -+ [ BTN_TOOL_BRUSH ] = "BTN_TOOL_BRUSH", -+ [ BTN_TOOL_PENCIL ] = "BTN_TOOL_PENCIL", -+ [ BTN_TOOL_AIRBRUSH ] = "BTN_TOOL_AIRBRUSH", -+ [ BTN_TOOL_FINGER ] = "BTN_TOOL_FINGER", -+ [ BTN_TOOL_MOUSE ] = "BTN_TOOL_MOUSE", -+ [ BTN_TOOL_LENS ] = "BTN_TOOL_LENS", -+ [ BTN_TOUCH ] = "BTN_TOUCH", -+ [ BTN_STYLUS ] = "BTN_STYLUS", -+ [ BTN_STYLUS2 ] = "BTN_STYLUS2", -+ [ BTN_TOOL_DOUBLETAP ] = "BTN_TOOL_DOUBLETAP", -+ [ BTN_TOOL_TRIPLETAP ] = "BTN_TOOL_TRIPLETAP", -+ [ BTN_TOOL_QUADTAP ] = "BTN_TOOL_QUADTAP", -+ [ BTN_WHEEL ] = "BTN_WHEEL", -+ [ BTN_GEAR_UP ] = "BTN_GEAR_UP", -+ [ KEY_OK ] = "KEY_OK", -+ [ KEY_SELECT ] = "KEY_SELECT", -+ [ KEY_GOTO ] = "KEY_GOTO", -+ [ KEY_CLEAR ] = "KEY_CLEAR", -+ [ KEY_POWER2 ] = "KEY_POWER2", -+ [ KEY_OPTION ] = "KEY_OPTION", -+ [ KEY_INFO ] = "KEY_INFO", -+ [ KEY_TIME ] = "KEY_TIME", -+ [ KEY_VENDOR ] = "KEY_VENDOR", -+ [ KEY_ARCHIVE ] = "KEY_ARCHIVE", -+ [ KEY_PROGRAM ] = "KEY_PROGRAM", -+ [ KEY_CHANNEL ] = "KEY_CHANNEL", -+ [ KEY_FAVORITES ] = "KEY_FAVORITES", -+ [ KEY_EPG ] = "KEY_EPG", -+ [ KEY_PVR ] = "KEY_PVR", -+ [ KEY_MHP ] = "KEY_MHP", -+ [ KEY_LANGUAGE ] = "KEY_LANGUAGE", -+ [ KEY_TITLE ] = "KEY_TITLE", -+ [ KEY_SUBTITLE ] = "KEY_SUBTITLE", -+ [ KEY_ANGLE ] = "KEY_ANGLE", -+ [ KEY_ZOOM ] = "KEY_ZOOM", -+ [ KEY_MODE ] = "KEY_MODE", -+ [ KEY_KEYBOARD ] = "KEY_KEYBOARD", -+ [ KEY_SCREEN ] = "KEY_SCREEN", -+ [ KEY_PC ] = "KEY_PC", -+ [ KEY_TV ] = "KEY_TV", -+ [ KEY_TV2 ] = "KEY_TV2", -+ [ KEY_VCR ] = "KEY_VCR", -+ [ KEY_VCR2 ] = "KEY_VCR2", -+ [ KEY_SAT ] = "KEY_SAT", -+ [ KEY_SAT2 ] = "KEY_SAT2", -+ [ KEY_CD ] = "KEY_CD", -+ [ KEY_TAPE ] = "KEY_TAPE", -+ [ KEY_RADIO ] = "KEY_RADIO", -+ [ KEY_TUNER ] = "KEY_TUNER", -+ [ KEY_PLAYER ] = "KEY_PLAYER", -+ [ KEY_TEXT ] = "KEY_TEXT", -+ [ KEY_DVD ] = "KEY_DVD", -+ [ KEY_AUX ] = "KEY_AUX", -+ [ KEY_MP3 ] = "KEY_MP3", -+ [ KEY_AUDIO ] = "KEY_AUDIO", -+ [ KEY_VIDEO ] = "KEY_VIDEO", -+ [ KEY_DIRECTORY ] = "KEY_DIRECTORY", -+ [ KEY_LIST ] = "KEY_LIST", -+ [ KEY_MEMO ] = "KEY_MEMO", -+ [ KEY_CALENDAR ] = "KEY_CALENDAR", -+ [ KEY_RED ] = "KEY_RED", -+ [ KEY_GREEN ] = "KEY_GREEN", -+ [ KEY_YELLOW ] = "KEY_YELLOW", -+ [ KEY_BLUE ] = "KEY_BLUE", -+ [ KEY_CHANNELUP ] = "KEY_CHANNELUP", -+ [ KEY_CHANNELDOWN ] = "KEY_CHANNELDOWN", -+ [ KEY_FIRST ] = "KEY_FIRST", -+ [ KEY_LAST ] = "KEY_LAST", -+ [ KEY_AB ] = "KEY_AB", -+ [ KEY_NEXT ] = "KEY_NEXT", -+ [ KEY_RESTART ] = "KEY_RESTART", -+ [ KEY_SLOW ] = "KEY_SLOW", -+ [ KEY_SHUFFLE ] = "KEY_SHUFFLE", -+ [ KEY_BREAK ] = "KEY_BREAK", -+ [ KEY_PREVIOUS ] = "KEY_PREVIOUS", -+ [ KEY_DIGITS ] = "KEY_DIGITS", -+ [ KEY_TEEN ] = "KEY_TEEN", -+ [ KEY_TWEN ] = "KEY_TWEN", -+ [ KEY_VIDEOPHONE ] = "KEY_VIDEOPHONE", -+ [ KEY_GAMES ] = "KEY_GAMES", -+ [ KEY_ZOOMIN ] = "KEY_ZOOMIN", -+ [ KEY_ZOOMOUT ] = "KEY_ZOOMOUT", -+ [ KEY_ZOOMRESET ] = "KEY_ZOOMRESET", -+ [ KEY_WORDPROCESSOR ] = "KEY_WORDPROCESSOR", -+ [ KEY_EDITOR ] = "KEY_EDITOR", -+ [ KEY_SPREADSHEET ] = "KEY_SPREADSHEET", -+ [ KEY_GRAPHICSEDITOR ] = "KEY_GRAPHICSEDITOR", -+ [ KEY_PRESENTATION ] = "KEY_PRESENTATION", -+ [ KEY_DATABASE ] = "KEY_DATABASE", -+ [ KEY_NEWS ] = "KEY_NEWS", -+ [ KEY_VOICEMAIL ] = "KEY_VOICEMAIL", -+ [ KEY_ADDRESSBOOK ] = "KEY_ADDRESSBOOK", -+ [ KEY_MESSENGER ] = "KEY_MESSENGER", -+ [ KEY_DISPLAYTOGGLE ] = "KEY_DISPLAYTOGGLE", -+ [ KEY_SPELLCHECK ] = "KEY_SPELLCHECK", -+ [ KEY_LOGOFF ] = "KEY_LOGOFF", -+ [ KEY_DOLLAR ] = "KEY_DOLLAR", -+ [ KEY_EURO ] = "KEY_EURO", -+ [ KEY_FRAMEBACK ] = "KEY_FRAMEBACK", -+ [ KEY_FRAMEFORWARD ] = "KEY_FRAMEFORWARD", -+ [ KEY_CONTEXT_MENU ] = "KEY_CONTEXT_MENU", -+ [ KEY_MEDIA_REPEAT ] = "KEY_MEDIA_REPEAT", -+ [ KEY_DEL_EOL ] = "KEY_DEL_EOL", -+ [ KEY_DEL_EOS ] = "KEY_DEL_EOS", -+ [ KEY_INS_LINE ] = "KEY_INS_LINE", -+ [ KEY_DEL_LINE ] = "KEY_DEL_LINE", -+ [ KEY_FN ] = "KEY_FN", -+ [ KEY_FN_ESC ] = "KEY_FN_ESC", -+ [ KEY_FN_F1 ] = "KEY_FN_F1", -+ [ KEY_FN_F2 ] = "KEY_FN_F2", -+ [ KEY_FN_F3 ] = "KEY_FN_F3", -+ [ KEY_FN_F4 ] = "KEY_FN_F4", -+ [ KEY_FN_F5 ] = "KEY_FN_F5", -+ [ KEY_FN_F6 ] = "KEY_FN_F6", -+ [ KEY_FN_F7 ] = "KEY_FN_F7", -+ [ KEY_FN_F8 ] = "KEY_FN_F8", -+ [ KEY_FN_F9 ] = "KEY_FN_F9", -+ [ KEY_FN_F10 ] = "KEY_FN_F10", -+ [ KEY_FN_F11 ] = "KEY_FN_F11", -+ [ KEY_FN_F12 ] = "KEY_FN_F12", -+ [ KEY_FN_1 ] = "KEY_FN_1", -+ [ KEY_FN_2 ] = "KEY_FN_2", -+ [ KEY_FN_D ] = "KEY_FN_D", -+ [ KEY_FN_E ] = "KEY_FN_E", -+ [ KEY_FN_F ] = "KEY_FN_F", -+ [ KEY_FN_S ] = "KEY_FN_S", -+ [ KEY_FN_B ] = "KEY_FN_B", -+ [ KEY_BRL_DOT1 ] = "KEY_BRL_DOT1", -+ [ KEY_BRL_DOT2 ] = "KEY_BRL_DOT2", -+ [ KEY_BRL_DOT3 ] = "KEY_BRL_DOT3", -+ [ KEY_BRL_DOT4 ] = "KEY_BRL_DOT4", -+ [ KEY_BRL_DOT5 ] = "KEY_BRL_DOT5", -+ [ KEY_BRL_DOT6 ] = "KEY_BRL_DOT6", -+ [ KEY_BRL_DOT7 ] = "KEY_BRL_DOT7", -+ [ KEY_BRL_DOT8 ] = "KEY_BRL_DOT8", -+ [ KEY_BRL_DOT9 ] = "KEY_BRL_DOT9", -+ [ KEY_BRL_DOT10 ] = "KEY_BRL_DOT10", -+ [ KEY_NUMERIC_0 ] = "KEY_NUMERIC_0", -+ [ KEY_NUMERIC_1 ] = "KEY_NUMERIC_1", -+ [ KEY_NUMERIC_2 ] = "KEY_NUMERIC_2", -+ [ KEY_NUMERIC_3 ] = "KEY_NUMERIC_3", -+ [ KEY_NUMERIC_4 ] = "KEY_NUMERIC_4", -+ [ KEY_NUMERIC_5 ] = "KEY_NUMERIC_5", -+ [ KEY_NUMERIC_6 ] = "KEY_NUMERIC_6", -+ [ KEY_NUMERIC_7 ] = "KEY_NUMERIC_7", -+ [ KEY_NUMERIC_8 ] = "KEY_NUMERIC_8", -+ [ KEY_NUMERIC_9 ] = "KEY_NUMERIC_9", -+ [ KEY_NUMERIC_STAR ] = "KEY_NUMERIC_STAR", -+ [ KEY_NUMERIC_POUND ] = "KEY_NUMERIC_POUND", -+ [ BTN_TRIGGER_HAPPY ] = "BTN_TRIGGER_HAPPY", -+ [ BTN_TRIGGER_HAPPY2 ] = "BTN_TRIGGER_HAPPY2", -+ [ BTN_TRIGGER_HAPPY3 ] = "BTN_TRIGGER_HAPPY3", -+ [ BTN_TRIGGER_HAPPY4 ] = "BTN_TRIGGER_HAPPY4", -+ [ BTN_TRIGGER_HAPPY5 ] = "BTN_TRIGGER_HAPPY5", -+ [ BTN_TRIGGER_HAPPY6 ] = "BTN_TRIGGER_HAPPY6", -+ [ BTN_TRIGGER_HAPPY7 ] = "BTN_TRIGGER_HAPPY7", -+ [ BTN_TRIGGER_HAPPY8 ] = "BTN_TRIGGER_HAPPY8", -+ [ BTN_TRIGGER_HAPPY9 ] = "BTN_TRIGGER_HAPPY9", -+ [ BTN_TRIGGER_HAPPY10 ] = "BTN_TRIGGER_HAPPY10", -+ [ BTN_TRIGGER_HAPPY11 ] = "BTN_TRIGGER_HAPPY11", -+ [ BTN_TRIGGER_HAPPY12 ] = "BTN_TRIGGER_HAPPY12", -+ [ BTN_TRIGGER_HAPPY13 ] = "BTN_TRIGGER_HAPPY13", -+ [ BTN_TRIGGER_HAPPY14 ] = "BTN_TRIGGER_HAPPY14", -+ [ BTN_TRIGGER_HAPPY15 ] = "BTN_TRIGGER_HAPPY15", -+ [ BTN_TRIGGER_HAPPY16 ] = "BTN_TRIGGER_HAPPY16", -+ [ BTN_TRIGGER_HAPPY17 ] = "BTN_TRIGGER_HAPPY17", -+ [ BTN_TRIGGER_HAPPY18 ] = "BTN_TRIGGER_HAPPY18", -+ [ BTN_TRIGGER_HAPPY19 ] = "BTN_TRIGGER_HAPPY19", -+ [ BTN_TRIGGER_HAPPY20 ] = "BTN_TRIGGER_HAPPY20", -+ [ BTN_TRIGGER_HAPPY21 ] = "BTN_TRIGGER_HAPPY21", -+ [ BTN_TRIGGER_HAPPY22 ] = "BTN_TRIGGER_HAPPY22", -+ [ BTN_TRIGGER_HAPPY23 ] = "BTN_TRIGGER_HAPPY23", -+ [ BTN_TRIGGER_HAPPY24 ] = "BTN_TRIGGER_HAPPY24", -+ [ BTN_TRIGGER_HAPPY25 ] = "BTN_TRIGGER_HAPPY25", -+ [ BTN_TRIGGER_HAPPY26 ] = "BTN_TRIGGER_HAPPY26", -+ [ BTN_TRIGGER_HAPPY27 ] = "BTN_TRIGGER_HAPPY27", -+ [ BTN_TRIGGER_HAPPY28 ] = "BTN_TRIGGER_HAPPY28", -+ [ BTN_TRIGGER_HAPPY29 ] = "BTN_TRIGGER_HAPPY29", -+ [ BTN_TRIGGER_HAPPY30 ] = "BTN_TRIGGER_HAPPY30", -+ [ BTN_TRIGGER_HAPPY31 ] = "BTN_TRIGGER_HAPPY31", -+ [ BTN_TRIGGER_HAPPY32 ] = "BTN_TRIGGER_HAPPY32", -+ [ BTN_TRIGGER_HAPPY33 ] = "BTN_TRIGGER_HAPPY33", -+ [ BTN_TRIGGER_HAPPY34 ] = "BTN_TRIGGER_HAPPY34", -+ [ BTN_TRIGGER_HAPPY35 ] = "BTN_TRIGGER_HAPPY35", -+ [ BTN_TRIGGER_HAPPY36 ] = "BTN_TRIGGER_HAPPY36", -+ [ BTN_TRIGGER_HAPPY37 ] = "BTN_TRIGGER_HAPPY37", -+ [ BTN_TRIGGER_HAPPY38 ] = "BTN_TRIGGER_HAPPY38", -+ [ BTN_TRIGGER_HAPPY39 ] = "BTN_TRIGGER_HAPPY39", -+ [ BTN_TRIGGER_HAPPY40 ] = "BTN_TRIGGER_HAPPY40", -+}; -+#endif ---- /dev/null -+++ eventlircd-0.0.1+svn20110129.2130/src/event_name_to_code.h -@@ -0,0 +1,577 @@ -+#ifndef _EVENTLIRCD_EVENT_NAME_TO_CODE_H_ -+#define _EVENTLIRCD_EVENT_NAME_TO_CODE_H_ 1 -+#include -+#include -+static const struct { -+ const char *name; -+ __u16 type; -+ __u16 code; -+} event_name_to_code[] = { -+ { "SYN_REPORT" , EV_SYN , SYN_REPORT }, -+ { "SYN_CONFIG" , EV_SYN , SYN_CONFIG }, -+ { "SYN_MT_REPORT" , EV_SYN , SYN_MT_REPORT }, -+ { "KEY_ESC" , EV_KEY , KEY_ESC }, -+ { "KEY_1" , EV_KEY , KEY_1 }, -+ { "KEY_2" , EV_KEY , KEY_2 }, -+ { "KEY_3" , EV_KEY , KEY_3 }, -+ { "KEY_4" , EV_KEY , KEY_4 }, -+ { "KEY_5" , EV_KEY , KEY_5 }, -+ { "KEY_6" , EV_KEY , KEY_6 }, -+ { "KEY_7" , EV_KEY , KEY_7 }, -+ { "KEY_8" , EV_KEY , KEY_8 }, -+ { "KEY_9" , EV_KEY , KEY_9 }, -+ { "KEY_0" , EV_KEY , KEY_0 }, -+ { "KEY_MINUS" , EV_KEY , KEY_MINUS }, -+ { "KEY_EQUAL" , EV_KEY , KEY_EQUAL }, -+ { "KEY_BACKSPACE" , EV_KEY , KEY_BACKSPACE }, -+ { "KEY_TAB" , EV_KEY , KEY_TAB }, -+ { "KEY_Q" , EV_KEY , KEY_Q }, -+ { "KEY_W" , EV_KEY , KEY_W }, -+ { "KEY_E" , EV_KEY , KEY_E }, -+ { "KEY_R" , EV_KEY , KEY_R }, -+ { "KEY_T" , EV_KEY , KEY_T }, -+ { "KEY_Y" , EV_KEY , KEY_Y }, -+ { "KEY_U" , EV_KEY , KEY_U }, -+ { "KEY_I" , EV_KEY , KEY_I }, -+ { "KEY_O" , EV_KEY , KEY_O }, -+ { "KEY_P" , EV_KEY , KEY_P }, -+ { "KEY_LEFTBRACE" , EV_KEY , KEY_LEFTBRACE }, -+ { "KEY_RIGHTBRACE" , EV_KEY , KEY_RIGHTBRACE }, -+ { "KEY_ENTER" , EV_KEY , KEY_ENTER }, -+ { "KEY_LEFTCTRL" , EV_KEY , KEY_LEFTCTRL }, -+ { "KEY_A" , EV_KEY , KEY_A }, -+ { "KEY_S" , EV_KEY , KEY_S }, -+ { "KEY_D" , EV_KEY , KEY_D }, -+ { "KEY_F" , EV_KEY , KEY_F }, -+ { "KEY_G" , EV_KEY , KEY_G }, -+ { "KEY_H" , EV_KEY , KEY_H }, -+ { "KEY_J" , EV_KEY , KEY_J }, -+ { "KEY_K" , EV_KEY , KEY_K }, -+ { "KEY_L" , EV_KEY , KEY_L }, -+ { "KEY_SEMICOLON" , EV_KEY , KEY_SEMICOLON }, -+ { "KEY_APOSTROPHE" , EV_KEY , KEY_APOSTROPHE }, -+ { "KEY_GRAVE" , EV_KEY , KEY_GRAVE }, -+ { "KEY_LEFTSHIFT" , EV_KEY , KEY_LEFTSHIFT }, -+ { "KEY_BACKSLASH" , EV_KEY , KEY_BACKSLASH }, -+ { "KEY_Z" , EV_KEY , KEY_Z }, -+ { "KEY_X" , EV_KEY , KEY_X }, -+ { "KEY_C" , EV_KEY , KEY_C }, -+ { "KEY_V" , EV_KEY , KEY_V }, -+ { "KEY_B" , EV_KEY , KEY_B }, -+ { "KEY_N" , EV_KEY , KEY_N }, -+ { "KEY_M" , EV_KEY , KEY_M }, -+ { "KEY_COMMA" , EV_KEY , KEY_COMMA }, -+ { "KEY_DOT" , EV_KEY , KEY_DOT }, -+ { "KEY_SLASH" , EV_KEY , KEY_SLASH }, -+ { "KEY_RIGHTSHIFT" , EV_KEY , KEY_RIGHTSHIFT }, -+ { "KEY_KPASTERISK" , EV_KEY , KEY_KPASTERISK }, -+ { "KEY_LEFTALT" , EV_KEY , KEY_LEFTALT }, -+ { "KEY_SPACE" , EV_KEY , KEY_SPACE }, -+ { "KEY_CAPSLOCK" , EV_KEY , KEY_CAPSLOCK }, -+ { "KEY_F1" , EV_KEY , KEY_F1 }, -+ { "KEY_F2" , EV_KEY , KEY_F2 }, -+ { "KEY_F3" , EV_KEY , KEY_F3 }, -+ { "KEY_F4" , EV_KEY , KEY_F4 }, -+ { "KEY_F5" , EV_KEY , KEY_F5 }, -+ { "KEY_F6" , EV_KEY , KEY_F6 }, -+ { "KEY_F7" , EV_KEY , KEY_F7 }, -+ { "KEY_F8" , EV_KEY , KEY_F8 }, -+ { "KEY_F9" , EV_KEY , KEY_F9 }, -+ { "KEY_F10" , EV_KEY , KEY_F10 }, -+ { "KEY_NUMLOCK" , EV_KEY , KEY_NUMLOCK }, -+ { "KEY_SCROLLLOCK" , EV_KEY , KEY_SCROLLLOCK }, -+ { "KEY_KP7" , EV_KEY , KEY_KP7 }, -+ { "KEY_KP8" , EV_KEY , KEY_KP8 }, -+ { "KEY_KP9" , EV_KEY , KEY_KP9 }, -+ { "KEY_KPMINUS" , EV_KEY , KEY_KPMINUS }, -+ { "KEY_KP4" , EV_KEY , KEY_KP4 }, -+ { "KEY_KP5" , EV_KEY , KEY_KP5 }, -+ { "KEY_KP6" , EV_KEY , KEY_KP6 }, -+ { "KEY_KPPLUS" , EV_KEY , KEY_KPPLUS }, -+ { "KEY_KP1" , EV_KEY , KEY_KP1 }, -+ { "KEY_KP2" , EV_KEY , KEY_KP2 }, -+ { "KEY_KP3" , EV_KEY , KEY_KP3 }, -+ { "KEY_KP0" , EV_KEY , KEY_KP0 }, -+ { "KEY_KPDOT" , EV_KEY , KEY_KPDOT }, -+ { "KEY_ZENKAKUHANKAKU" , EV_KEY , KEY_ZENKAKUHANKAKU }, -+ { "KEY_102ND" , EV_KEY , KEY_102ND }, -+ { "KEY_F11" , EV_KEY , KEY_F11 }, -+ { "KEY_F12" , EV_KEY , KEY_F12 }, -+ { "KEY_RO" , EV_KEY , KEY_RO }, -+ { "KEY_KATAKANA" , EV_KEY , KEY_KATAKANA }, -+ { "KEY_HIRAGANA" , EV_KEY , KEY_HIRAGANA }, -+ { "KEY_HENKAN" , EV_KEY , KEY_HENKAN }, -+ { "KEY_KATAKANAHIRAGANA" , EV_KEY , KEY_KATAKANAHIRAGANA }, -+ { "KEY_MUHENKAN" , EV_KEY , KEY_MUHENKAN }, -+ { "KEY_KPJPCOMMA" , EV_KEY , KEY_KPJPCOMMA }, -+ { "KEY_KPENTER" , EV_KEY , KEY_KPENTER }, -+ { "KEY_RIGHTCTRL" , EV_KEY , KEY_RIGHTCTRL }, -+ { "KEY_KPSLASH" , EV_KEY , KEY_KPSLASH }, -+ { "KEY_SYSRQ" , EV_KEY , KEY_SYSRQ }, -+ { "KEY_RIGHTALT" , EV_KEY , KEY_RIGHTALT }, -+ { "KEY_LINEFEED" , EV_KEY , KEY_LINEFEED }, -+ { "KEY_HOME" , EV_KEY , KEY_HOME }, -+ { "KEY_UP" , EV_KEY , KEY_UP }, -+ { "KEY_PAGEUP" , EV_KEY , KEY_PAGEUP }, -+ { "KEY_LEFT" , EV_KEY , KEY_LEFT }, -+ { "KEY_RIGHT" , EV_KEY , KEY_RIGHT }, -+ { "KEY_END" , EV_KEY , KEY_END }, -+ { "KEY_DOWN" , EV_KEY , KEY_DOWN }, -+ { "KEY_PAGEDOWN" , EV_KEY , KEY_PAGEDOWN }, -+ { "KEY_INSERT" , EV_KEY , KEY_INSERT }, -+ { "KEY_DELETE" , EV_KEY , KEY_DELETE }, -+ { "KEY_MACRO" , EV_KEY , KEY_MACRO }, -+ { "KEY_MUTE" , EV_KEY , KEY_MUTE }, -+ { "KEY_VOLUMEDOWN" , EV_KEY , KEY_VOLUMEDOWN }, -+ { "KEY_VOLUMEUP" , EV_KEY , KEY_VOLUMEUP }, -+ { "KEY_POWER" , EV_KEY , KEY_POWER }, -+ { "KEY_KPEQUAL" , EV_KEY , KEY_KPEQUAL }, -+ { "KEY_KPPLUSMINUS" , EV_KEY , KEY_KPPLUSMINUS }, -+ { "KEY_PAUSE" , EV_KEY , KEY_PAUSE }, -+ { "KEY_SCALE" , EV_KEY , KEY_SCALE }, -+ { "KEY_KPCOMMA" , EV_KEY , KEY_KPCOMMA }, -+ { "KEY_HANGEUL" , EV_KEY , KEY_HANGEUL }, -+ { "KEY_HANGUEL" , EV_KEY , KEY_HANGUEL }, -+ { "KEY_HANJA" , EV_KEY , KEY_HANJA }, -+ { "KEY_YEN" , EV_KEY , KEY_YEN }, -+ { "KEY_LEFTMETA" , EV_KEY , KEY_LEFTMETA }, -+ { "KEY_RIGHTMETA" , EV_KEY , KEY_RIGHTMETA }, -+ { "KEY_COMPOSE" , EV_KEY , KEY_COMPOSE }, -+ { "KEY_STOP" , EV_KEY , KEY_STOP }, -+ { "KEY_AGAIN" , EV_KEY , KEY_AGAIN }, -+ { "KEY_PROPS" , EV_KEY , KEY_PROPS }, -+ { "KEY_UNDO" , EV_KEY , KEY_UNDO }, -+ { "KEY_FRONT" , EV_KEY , KEY_FRONT }, -+ { "KEY_COPY" , EV_KEY , KEY_COPY }, -+ { "KEY_OPEN" , EV_KEY , KEY_OPEN }, -+ { "KEY_PASTE" , EV_KEY , KEY_PASTE }, -+ { "KEY_FIND" , EV_KEY , KEY_FIND }, -+ { "KEY_CUT" , EV_KEY , KEY_CUT }, -+ { "KEY_HELP" , EV_KEY , KEY_HELP }, -+ { "KEY_MENU" , EV_KEY , KEY_MENU }, -+ { "KEY_CALC" , EV_KEY , KEY_CALC }, -+ { "KEY_SETUP" , EV_KEY , KEY_SETUP }, -+ { "KEY_SLEEP" , EV_KEY , KEY_SLEEP }, -+ { "KEY_WAKEUP" , EV_KEY , KEY_WAKEUP }, -+ { "KEY_FILE" , EV_KEY , KEY_FILE }, -+ { "KEY_SENDFILE" , EV_KEY , KEY_SENDFILE }, -+ { "KEY_DELETEFILE" , EV_KEY , KEY_DELETEFILE }, -+ { "KEY_XFER" , EV_KEY , KEY_XFER }, -+ { "KEY_PROG1" , EV_KEY , KEY_PROG1 }, -+ { "KEY_PROG2" , EV_KEY , KEY_PROG2 }, -+ { "KEY_WWW" , EV_KEY , KEY_WWW }, -+ { "KEY_MSDOS" , EV_KEY , KEY_MSDOS }, -+ { "KEY_COFFEE" , EV_KEY , KEY_COFFEE }, -+ { "KEY_SCREENLOCK" , EV_KEY , KEY_SCREENLOCK }, -+ { "KEY_DIRECTION" , EV_KEY , KEY_DIRECTION }, -+ { "KEY_CYCLEWINDOWS" , EV_KEY , KEY_CYCLEWINDOWS }, -+ { "KEY_MAIL" , EV_KEY , KEY_MAIL }, -+ { "KEY_BOOKMARKS" , EV_KEY , KEY_BOOKMARKS }, -+ { "KEY_COMPUTER" , EV_KEY , KEY_COMPUTER }, -+ { "KEY_BACK" , EV_KEY , KEY_BACK }, -+ { "KEY_FORWARD" , EV_KEY , KEY_FORWARD }, -+ { "KEY_CLOSECD" , EV_KEY , KEY_CLOSECD }, -+ { "KEY_EJECTCD" , EV_KEY , KEY_EJECTCD }, -+ { "KEY_EJECTCLOSECD" , EV_KEY , KEY_EJECTCLOSECD }, -+ { "KEY_NEXTSONG" , EV_KEY , KEY_NEXTSONG }, -+ { "KEY_PLAYPAUSE" , EV_KEY , KEY_PLAYPAUSE }, -+ { "KEY_PREVIOUSSONG" , EV_KEY , KEY_PREVIOUSSONG }, -+ { "KEY_STOPCD" , EV_KEY , KEY_STOPCD }, -+ { "KEY_RECORD" , EV_KEY , KEY_RECORD }, -+ { "KEY_REWIND" , EV_KEY , KEY_REWIND }, -+ { "KEY_PHONE" , EV_KEY , KEY_PHONE }, -+ { "KEY_ISO" , EV_KEY , KEY_ISO }, -+ { "KEY_CONFIG" , EV_KEY , KEY_CONFIG }, -+ { "KEY_HOMEPAGE" , EV_KEY , KEY_HOMEPAGE }, -+ { "KEY_REFRESH" , EV_KEY , KEY_REFRESH }, -+ { "KEY_EXIT" , EV_KEY , KEY_EXIT }, -+ { "KEY_MOVE" , EV_KEY , KEY_MOVE }, -+ { "KEY_EDIT" , EV_KEY , KEY_EDIT }, -+ { "KEY_SCROLLUP" , EV_KEY , KEY_SCROLLUP }, -+ { "KEY_SCROLLDOWN" , EV_KEY , KEY_SCROLLDOWN }, -+ { "KEY_KPLEFTPAREN" , EV_KEY , KEY_KPLEFTPAREN }, -+ { "KEY_KPRIGHTPAREN" , EV_KEY , KEY_KPRIGHTPAREN }, -+ { "KEY_NEW" , EV_KEY , KEY_NEW }, -+ { "KEY_REDO" , EV_KEY , KEY_REDO }, -+ { "KEY_F13" , EV_KEY , KEY_F13 }, -+ { "KEY_F14" , EV_KEY , KEY_F14 }, -+ { "KEY_F15" , EV_KEY , KEY_F15 }, -+ { "KEY_F16" , EV_KEY , KEY_F16 }, -+ { "KEY_F17" , EV_KEY , KEY_F17 }, -+ { "KEY_F18" , EV_KEY , KEY_F18 }, -+ { "KEY_F19" , EV_KEY , KEY_F19 }, -+ { "KEY_F20" , EV_KEY , KEY_F20 }, -+ { "KEY_F21" , EV_KEY , KEY_F21 }, -+ { "KEY_F22" , EV_KEY , KEY_F22 }, -+ { "KEY_F23" , EV_KEY , KEY_F23 }, -+ { "KEY_F24" , EV_KEY , KEY_F24 }, -+ { "KEY_PLAYCD" , EV_KEY , KEY_PLAYCD }, -+ { "KEY_PAUSECD" , EV_KEY , KEY_PAUSECD }, -+ { "KEY_PROG3" , EV_KEY , KEY_PROG3 }, -+ { "KEY_PROG4" , EV_KEY , KEY_PROG4 }, -+ { "KEY_DASHBOARD" , EV_KEY , KEY_DASHBOARD }, -+ { "KEY_SUSPEND" , EV_KEY , KEY_SUSPEND }, -+ { "KEY_CLOSE" , EV_KEY , KEY_CLOSE }, -+ { "KEY_PLAY" , EV_KEY , KEY_PLAY }, -+ { "KEY_FASTFORWARD" , EV_KEY , KEY_FASTFORWARD }, -+ { "KEY_BASSBOOST" , EV_KEY , KEY_BASSBOOST }, -+ { "KEY_PRINT" , EV_KEY , KEY_PRINT }, -+ { "KEY_HP" , EV_KEY , KEY_HP }, -+ { "KEY_CAMERA" , EV_KEY , KEY_CAMERA }, -+ { "KEY_SOUND" , EV_KEY , KEY_SOUND }, -+ { "KEY_QUESTION" , EV_KEY , KEY_QUESTION }, -+ { "KEY_EMAIL" , EV_KEY , KEY_EMAIL }, -+ { "KEY_CHAT" , EV_KEY , KEY_CHAT }, -+ { "KEY_SEARCH" , EV_KEY , KEY_SEARCH }, -+ { "KEY_CONNECT" , EV_KEY , KEY_CONNECT }, -+ { "KEY_FINANCE" , EV_KEY , KEY_FINANCE }, -+ { "KEY_SPORT" , EV_KEY , KEY_SPORT }, -+ { "KEY_SHOP" , EV_KEY , KEY_SHOP }, -+ { "KEY_ALTERASE" , EV_KEY , KEY_ALTERASE }, -+ { "KEY_CANCEL" , EV_KEY , KEY_CANCEL }, -+ { "KEY_BRIGHTNESSDOWN" , EV_KEY , KEY_BRIGHTNESSDOWN }, -+ { "KEY_BRIGHTNESSUP" , EV_KEY , KEY_BRIGHTNESSUP }, -+ { "KEY_MEDIA" , EV_KEY , KEY_MEDIA }, -+ { "KEY_SWITCHVIDEOMODE" , EV_KEY , KEY_SWITCHVIDEOMODE }, -+ { "KEY_KBDILLUMTOGGLE" , EV_KEY , KEY_KBDILLUMTOGGLE }, -+ { "KEY_KBDILLUMDOWN" , EV_KEY , KEY_KBDILLUMDOWN }, -+ { "KEY_KBDILLUMUP" , EV_KEY , KEY_KBDILLUMUP }, -+ { "KEY_SEND" , EV_KEY , KEY_SEND }, -+ { "KEY_REPLY" , EV_KEY , KEY_REPLY }, -+ { "KEY_FORWARDMAIL" , EV_KEY , KEY_FORWARDMAIL }, -+ { "KEY_SAVE" , EV_KEY , KEY_SAVE }, -+ { "KEY_DOCUMENTS" , EV_KEY , KEY_DOCUMENTS }, -+ { "KEY_BATTERY" , EV_KEY , KEY_BATTERY }, -+ { "KEY_BLUETOOTH" , EV_KEY , KEY_BLUETOOTH }, -+ { "KEY_WLAN" , EV_KEY , KEY_WLAN }, -+ { "KEY_UWB" , EV_KEY , KEY_UWB }, -+ { "KEY_UNKNOWN" , EV_KEY , KEY_UNKNOWN }, -+ { "KEY_VIDEO_NEXT" , EV_KEY , KEY_VIDEO_NEXT }, -+ { "KEY_VIDEO_PREV" , EV_KEY , KEY_VIDEO_PREV }, -+ { "KEY_BRIGHTNESS_CYCLE" , EV_KEY , KEY_BRIGHTNESS_CYCLE }, -+ { "KEY_BRIGHTNESS_ZERO" , EV_KEY , KEY_BRIGHTNESS_ZERO }, -+ { "KEY_DISPLAY_OFF" , EV_KEY , KEY_DISPLAY_OFF }, -+ { "KEY_WIMAX" , EV_KEY , KEY_WIMAX }, -+ { "BTN_MISC" , EV_KEY , BTN_MISC }, -+ { "BTN_0" , EV_KEY , BTN_0 }, -+ { "BTN_1" , EV_KEY , BTN_1 }, -+ { "BTN_2" , EV_KEY , BTN_2 }, -+ { "BTN_3" , EV_KEY , BTN_3 }, -+ { "BTN_4" , EV_KEY , BTN_4 }, -+ { "BTN_5" , EV_KEY , BTN_5 }, -+ { "BTN_6" , EV_KEY , BTN_6 }, -+ { "BTN_7" , EV_KEY , BTN_7 }, -+ { "BTN_8" , EV_KEY , BTN_8 }, -+ { "BTN_9" , EV_KEY , BTN_9 }, -+ { "BTN_MOUSE" , EV_KEY , BTN_MOUSE }, -+ { "BTN_LEFT" , EV_KEY , BTN_LEFT }, -+ { "BTN_RIGHT" , EV_KEY , BTN_RIGHT }, -+ { "BTN_MIDDLE" , EV_KEY , BTN_MIDDLE }, -+ { "BTN_SIDE" , EV_KEY , BTN_SIDE }, -+ { "BTN_EXTRA" , EV_KEY , BTN_EXTRA }, -+ { "BTN_FORWARD" , EV_KEY , BTN_FORWARD }, -+ { "BTN_BACK" , EV_KEY , BTN_BACK }, -+ { "BTN_TASK" , EV_KEY , BTN_TASK }, -+ { "BTN_JOYSTICK" , EV_KEY , BTN_JOYSTICK }, -+ { "BTN_TRIGGER" , EV_KEY , BTN_TRIGGER }, -+ { "BTN_THUMB" , EV_KEY , BTN_THUMB }, -+ { "BTN_THUMB2" , EV_KEY , BTN_THUMB2 }, -+ { "BTN_TOP" , EV_KEY , BTN_TOP }, -+ { "BTN_TOP2" , EV_KEY , BTN_TOP2 }, -+ { "BTN_PINKIE" , EV_KEY , BTN_PINKIE }, -+ { "BTN_BASE" , EV_KEY , BTN_BASE }, -+ { "BTN_BASE2" , EV_KEY , BTN_BASE2 }, -+ { "BTN_BASE3" , EV_KEY , BTN_BASE3 }, -+ { "BTN_BASE4" , EV_KEY , BTN_BASE4 }, -+ { "BTN_BASE5" , EV_KEY , BTN_BASE5 }, -+ { "BTN_BASE6" , EV_KEY , BTN_BASE6 }, -+ { "BTN_DEAD" , EV_KEY , BTN_DEAD }, -+ { "BTN_GAMEPAD" , EV_KEY , BTN_GAMEPAD }, -+ { "BTN_A" , EV_KEY , BTN_A }, -+ { "BTN_B" , EV_KEY , BTN_B }, -+ { "BTN_C" , EV_KEY , BTN_C }, -+ { "BTN_X" , EV_KEY , BTN_X }, -+ { "BTN_Y" , EV_KEY , BTN_Y }, -+ { "BTN_Z" , EV_KEY , BTN_Z }, -+ { "BTN_TL" , EV_KEY , BTN_TL }, -+ { "BTN_TR" , EV_KEY , BTN_TR }, -+ { "BTN_TL2" , EV_KEY , BTN_TL2 }, -+ { "BTN_TR2" , EV_KEY , BTN_TR2 }, -+ { "BTN_SELECT" , EV_KEY , BTN_SELECT }, -+ { "BTN_START" , EV_KEY , BTN_START }, -+ { "BTN_MODE" , EV_KEY , BTN_MODE }, -+ { "BTN_THUMBL" , EV_KEY , BTN_THUMBL }, -+ { "BTN_THUMBR" , EV_KEY , BTN_THUMBR }, -+ { "BTN_DIGI" , EV_KEY , BTN_DIGI }, -+ { "BTN_TOOL_PEN" , EV_KEY , BTN_TOOL_PEN }, -+ { "BTN_TOOL_RUBBER" , EV_KEY , BTN_TOOL_RUBBER }, -+ { "BTN_TOOL_BRUSH" , EV_KEY , BTN_TOOL_BRUSH }, -+ { "BTN_TOOL_PENCIL" , EV_KEY , BTN_TOOL_PENCIL }, -+ { "BTN_TOOL_AIRBRUSH" , EV_KEY , BTN_TOOL_AIRBRUSH }, -+ { "BTN_TOOL_FINGER" , EV_KEY , BTN_TOOL_FINGER }, -+ { "BTN_TOOL_MOUSE" , EV_KEY , BTN_TOOL_MOUSE }, -+ { "BTN_TOOL_LENS" , EV_KEY , BTN_TOOL_LENS }, -+ { "BTN_TOUCH" , EV_KEY , BTN_TOUCH }, -+ { "BTN_STYLUS" , EV_KEY , BTN_STYLUS }, -+ { "BTN_STYLUS2" , EV_KEY , BTN_STYLUS2 }, -+ { "BTN_TOOL_DOUBLETAP" , EV_KEY , BTN_TOOL_DOUBLETAP }, -+ { "BTN_TOOL_TRIPLETAP" , EV_KEY , BTN_TOOL_TRIPLETAP }, -+ { "BTN_TOOL_QUADTAP" , EV_KEY , BTN_TOOL_QUADTAP }, -+ { "BTN_WHEEL" , EV_KEY , BTN_WHEEL }, -+ { "BTN_GEAR_DOWN" , EV_KEY , BTN_GEAR_DOWN }, -+ { "BTN_GEAR_UP" , EV_KEY , BTN_GEAR_UP }, -+ { "KEY_OK" , EV_KEY , KEY_OK }, -+ { "KEY_SELECT" , EV_KEY , KEY_SELECT }, -+ { "KEY_GOTO" , EV_KEY , KEY_GOTO }, -+ { "KEY_CLEAR" , EV_KEY , KEY_CLEAR }, -+ { "KEY_POWER2" , EV_KEY , KEY_POWER2 }, -+ { "KEY_OPTION" , EV_KEY , KEY_OPTION }, -+ { "KEY_INFO" , EV_KEY , KEY_INFO }, -+ { "KEY_TIME" , EV_KEY , KEY_TIME }, -+ { "KEY_VENDOR" , EV_KEY , KEY_VENDOR }, -+ { "KEY_ARCHIVE" , EV_KEY , KEY_ARCHIVE }, -+ { "KEY_PROGRAM" , EV_KEY , KEY_PROGRAM }, -+ { "KEY_CHANNEL" , EV_KEY , KEY_CHANNEL }, -+ { "KEY_FAVORITES" , EV_KEY , KEY_FAVORITES }, -+ { "KEY_EPG" , EV_KEY , KEY_EPG }, -+ { "KEY_PVR" , EV_KEY , KEY_PVR }, -+ { "KEY_MHP" , EV_KEY , KEY_MHP }, -+ { "KEY_LANGUAGE" , EV_KEY , KEY_LANGUAGE }, -+ { "KEY_TITLE" , EV_KEY , KEY_TITLE }, -+ { "KEY_SUBTITLE" , EV_KEY , KEY_SUBTITLE }, -+ { "KEY_ANGLE" , EV_KEY , KEY_ANGLE }, -+ { "KEY_ZOOM" , EV_KEY , KEY_ZOOM }, -+ { "KEY_MODE" , EV_KEY , KEY_MODE }, -+ { "KEY_KEYBOARD" , EV_KEY , KEY_KEYBOARD }, -+ { "KEY_SCREEN" , EV_KEY , KEY_SCREEN }, -+ { "KEY_PC" , EV_KEY , KEY_PC }, -+ { "KEY_TV" , EV_KEY , KEY_TV }, -+ { "KEY_TV2" , EV_KEY , KEY_TV2 }, -+ { "KEY_VCR" , EV_KEY , KEY_VCR }, -+ { "KEY_VCR2" , EV_KEY , KEY_VCR2 }, -+ { "KEY_SAT" , EV_KEY , KEY_SAT }, -+ { "KEY_SAT2" , EV_KEY , KEY_SAT2 }, -+ { "KEY_CD" , EV_KEY , KEY_CD }, -+ { "KEY_TAPE" , EV_KEY , KEY_TAPE }, -+ { "KEY_RADIO" , EV_KEY , KEY_RADIO }, -+ { "KEY_TUNER" , EV_KEY , KEY_TUNER }, -+ { "KEY_PLAYER" , EV_KEY , KEY_PLAYER }, -+ { "KEY_TEXT" , EV_KEY , KEY_TEXT }, -+ { "KEY_DVD" , EV_KEY , KEY_DVD }, -+ { "KEY_AUX" , EV_KEY , KEY_AUX }, -+ { "KEY_MP3" , EV_KEY , KEY_MP3 }, -+ { "KEY_AUDIO" , EV_KEY , KEY_AUDIO }, -+ { "KEY_VIDEO" , EV_KEY , KEY_VIDEO }, -+ { "KEY_DIRECTORY" , EV_KEY , KEY_DIRECTORY }, -+ { "KEY_LIST" , EV_KEY , KEY_LIST }, -+ { "KEY_MEMO" , EV_KEY , KEY_MEMO }, -+ { "KEY_CALENDAR" , EV_KEY , KEY_CALENDAR }, -+ { "KEY_RED" , EV_KEY , KEY_RED }, -+ { "KEY_GREEN" , EV_KEY , KEY_GREEN }, -+ { "KEY_YELLOW" , EV_KEY , KEY_YELLOW }, -+ { "KEY_BLUE" , EV_KEY , KEY_BLUE }, -+ { "KEY_CHANNELUP" , EV_KEY , KEY_CHANNELUP }, -+ { "KEY_CHANNELDOWN" , EV_KEY , KEY_CHANNELDOWN }, -+ { "KEY_FIRST" , EV_KEY , KEY_FIRST }, -+ { "KEY_LAST" , EV_KEY , KEY_LAST }, -+ { "KEY_AB" , EV_KEY , KEY_AB }, -+ { "KEY_NEXT" , EV_KEY , KEY_NEXT }, -+ { "KEY_RESTART" , EV_KEY , KEY_RESTART }, -+ { "KEY_SLOW" , EV_KEY , KEY_SLOW }, -+ { "KEY_SHUFFLE" , EV_KEY , KEY_SHUFFLE }, -+ { "KEY_BREAK" , EV_KEY , KEY_BREAK }, -+ { "KEY_PREVIOUS" , EV_KEY , KEY_PREVIOUS }, -+ { "KEY_DIGITS" , EV_KEY , KEY_DIGITS }, -+ { "KEY_TEEN" , EV_KEY , KEY_TEEN }, -+ { "KEY_TWEN" , EV_KEY , KEY_TWEN }, -+ { "KEY_VIDEOPHONE" , EV_KEY , KEY_VIDEOPHONE }, -+ { "KEY_GAMES" , EV_KEY , KEY_GAMES }, -+ { "KEY_ZOOMIN" , EV_KEY , KEY_ZOOMIN }, -+ { "KEY_ZOOMOUT" , EV_KEY , KEY_ZOOMOUT }, -+ { "KEY_ZOOMRESET" , EV_KEY , KEY_ZOOMRESET }, -+ { "KEY_WORDPROCESSOR" , EV_KEY , KEY_WORDPROCESSOR }, -+ { "KEY_EDITOR" , EV_KEY , KEY_EDITOR }, -+ { "KEY_SPREADSHEET" , EV_KEY , KEY_SPREADSHEET }, -+ { "KEY_GRAPHICSEDITOR" , EV_KEY , KEY_GRAPHICSEDITOR }, -+ { "KEY_PRESENTATION" , EV_KEY , KEY_PRESENTATION }, -+ { "KEY_DATABASE" , EV_KEY , KEY_DATABASE }, -+ { "KEY_NEWS" , EV_KEY , KEY_NEWS }, -+ { "KEY_VOICEMAIL" , EV_KEY , KEY_VOICEMAIL }, -+ { "KEY_ADDRESSBOOK" , EV_KEY , KEY_ADDRESSBOOK }, -+ { "KEY_MESSENGER" , EV_KEY , KEY_MESSENGER }, -+ { "KEY_DISPLAYTOGGLE" , EV_KEY , KEY_DISPLAYTOGGLE }, -+ { "KEY_SPELLCHECK" , EV_KEY , KEY_SPELLCHECK }, -+ { "KEY_LOGOFF" , EV_KEY , KEY_LOGOFF }, -+ { "KEY_DOLLAR" , EV_KEY , KEY_DOLLAR }, -+ { "KEY_EURO" , EV_KEY , KEY_EURO }, -+ { "KEY_FRAMEBACK" , EV_KEY , KEY_FRAMEBACK }, -+ { "KEY_FRAMEFORWARD" , EV_KEY , KEY_FRAMEFORWARD }, -+ { "KEY_CONTEXT_MENU" , EV_KEY , KEY_CONTEXT_MENU }, -+ { "KEY_MEDIA_REPEAT" , EV_KEY , KEY_MEDIA_REPEAT }, -+ { "KEY_DEL_EOL" , EV_KEY , KEY_DEL_EOL }, -+ { "KEY_DEL_EOS" , EV_KEY , KEY_DEL_EOS }, -+ { "KEY_INS_LINE" , EV_KEY , KEY_INS_LINE }, -+ { "KEY_DEL_LINE" , EV_KEY , KEY_DEL_LINE }, -+ { "KEY_FN" , EV_KEY , KEY_FN }, -+ { "KEY_FN_ESC" , EV_KEY , KEY_FN_ESC }, -+ { "KEY_FN_F1" , EV_KEY , KEY_FN_F1 }, -+ { "KEY_FN_F2" , EV_KEY , KEY_FN_F2 }, -+ { "KEY_FN_F3" , EV_KEY , KEY_FN_F3 }, -+ { "KEY_FN_F4" , EV_KEY , KEY_FN_F4 }, -+ { "KEY_FN_F5" , EV_KEY , KEY_FN_F5 }, -+ { "KEY_FN_F6" , EV_KEY , KEY_FN_F6 }, -+ { "KEY_FN_F7" , EV_KEY , KEY_FN_F7 }, -+ { "KEY_FN_F8" , EV_KEY , KEY_FN_F8 }, -+ { "KEY_FN_F9" , EV_KEY , KEY_FN_F9 }, -+ { "KEY_FN_F10" , EV_KEY , KEY_FN_F10 }, -+ { "KEY_FN_F11" , EV_KEY , KEY_FN_F11 }, -+ { "KEY_FN_F12" , EV_KEY , KEY_FN_F12 }, -+ { "KEY_FN_1" , EV_KEY , KEY_FN_1 }, -+ { "KEY_FN_2" , EV_KEY , KEY_FN_2 }, -+ { "KEY_FN_D" , EV_KEY , KEY_FN_D }, -+ { "KEY_FN_E" , EV_KEY , KEY_FN_E }, -+ { "KEY_FN_F" , EV_KEY , KEY_FN_F }, -+ { "KEY_FN_S" , EV_KEY , KEY_FN_S }, -+ { "KEY_FN_B" , EV_KEY , KEY_FN_B }, -+ { "KEY_BRL_DOT1" , EV_KEY , KEY_BRL_DOT1 }, -+ { "KEY_BRL_DOT2" , EV_KEY , KEY_BRL_DOT2 }, -+ { "KEY_BRL_DOT3" , EV_KEY , KEY_BRL_DOT3 }, -+ { "KEY_BRL_DOT4" , EV_KEY , KEY_BRL_DOT4 }, -+ { "KEY_BRL_DOT5" , EV_KEY , KEY_BRL_DOT5 }, -+ { "KEY_BRL_DOT6" , EV_KEY , KEY_BRL_DOT6 }, -+ { "KEY_BRL_DOT7" , EV_KEY , KEY_BRL_DOT7 }, -+ { "KEY_BRL_DOT8" , EV_KEY , KEY_BRL_DOT8 }, -+ { "KEY_BRL_DOT9" , EV_KEY , KEY_BRL_DOT9 }, -+ { "KEY_BRL_DOT10" , EV_KEY , KEY_BRL_DOT10 }, -+ { "KEY_NUMERIC_0" , EV_KEY , KEY_NUMERIC_0 }, -+ { "KEY_NUMERIC_1" , EV_KEY , KEY_NUMERIC_1 }, -+ { "KEY_NUMERIC_2" , EV_KEY , KEY_NUMERIC_2 }, -+ { "KEY_NUMERIC_3" , EV_KEY , KEY_NUMERIC_3 }, -+ { "KEY_NUMERIC_4" , EV_KEY , KEY_NUMERIC_4 }, -+ { "KEY_NUMERIC_5" , EV_KEY , KEY_NUMERIC_5 }, -+ { "KEY_NUMERIC_6" , EV_KEY , KEY_NUMERIC_6 }, -+ { "KEY_NUMERIC_7" , EV_KEY , KEY_NUMERIC_7 }, -+ { "KEY_NUMERIC_8" , EV_KEY , KEY_NUMERIC_8 }, -+ { "KEY_NUMERIC_9" , EV_KEY , KEY_NUMERIC_9 }, -+ { "KEY_NUMERIC_STAR" , EV_KEY , KEY_NUMERIC_STAR }, -+ { "KEY_NUMERIC_POUND" , EV_KEY , KEY_NUMERIC_POUND }, -+ { "BTN_TRIGGER_HAPPY" , EV_KEY , BTN_TRIGGER_HAPPY }, -+ { "BTN_TRIGGER_HAPPY1" , EV_KEY , BTN_TRIGGER_HAPPY1 }, -+ { "BTN_TRIGGER_HAPPY2" , EV_KEY , BTN_TRIGGER_HAPPY2 }, -+ { "BTN_TRIGGER_HAPPY3" , EV_KEY , BTN_TRIGGER_HAPPY3 }, -+ { "BTN_TRIGGER_HAPPY4" , EV_KEY , BTN_TRIGGER_HAPPY4 }, -+ { "BTN_TRIGGER_HAPPY5" , EV_KEY , BTN_TRIGGER_HAPPY5 }, -+ { "BTN_TRIGGER_HAPPY6" , EV_KEY , BTN_TRIGGER_HAPPY6 }, -+ { "BTN_TRIGGER_HAPPY7" , EV_KEY , BTN_TRIGGER_HAPPY7 }, -+ { "BTN_TRIGGER_HAPPY8" , EV_KEY , BTN_TRIGGER_HAPPY8 }, -+ { "BTN_TRIGGER_HAPPY9" , EV_KEY , BTN_TRIGGER_HAPPY9 }, -+ { "BTN_TRIGGER_HAPPY10" , EV_KEY , BTN_TRIGGER_HAPPY10 }, -+ { "BTN_TRIGGER_HAPPY11" , EV_KEY , BTN_TRIGGER_HAPPY11 }, -+ { "BTN_TRIGGER_HAPPY12" , EV_KEY , BTN_TRIGGER_HAPPY12 }, -+ { "BTN_TRIGGER_HAPPY13" , EV_KEY , BTN_TRIGGER_HAPPY13 }, -+ { "BTN_TRIGGER_HAPPY14" , EV_KEY , BTN_TRIGGER_HAPPY14 }, -+ { "BTN_TRIGGER_HAPPY15" , EV_KEY , BTN_TRIGGER_HAPPY15 }, -+ { "BTN_TRIGGER_HAPPY16" , EV_KEY , BTN_TRIGGER_HAPPY16 }, -+ { "BTN_TRIGGER_HAPPY17" , EV_KEY , BTN_TRIGGER_HAPPY17 }, -+ { "BTN_TRIGGER_HAPPY18" , EV_KEY , BTN_TRIGGER_HAPPY18 }, -+ { "BTN_TRIGGER_HAPPY19" , EV_KEY , BTN_TRIGGER_HAPPY19 }, -+ { "BTN_TRIGGER_HAPPY20" , EV_KEY , BTN_TRIGGER_HAPPY20 }, -+ { "BTN_TRIGGER_HAPPY21" , EV_KEY , BTN_TRIGGER_HAPPY21 }, -+ { "BTN_TRIGGER_HAPPY22" , EV_KEY , BTN_TRIGGER_HAPPY22 }, -+ { "BTN_TRIGGER_HAPPY23" , EV_KEY , BTN_TRIGGER_HAPPY23 }, -+ { "BTN_TRIGGER_HAPPY24" , EV_KEY , BTN_TRIGGER_HAPPY24 }, -+ { "BTN_TRIGGER_HAPPY25" , EV_KEY , BTN_TRIGGER_HAPPY25 }, -+ { "BTN_TRIGGER_HAPPY26" , EV_KEY , BTN_TRIGGER_HAPPY26 }, -+ { "BTN_TRIGGER_HAPPY27" , EV_KEY , BTN_TRIGGER_HAPPY27 }, -+ { "BTN_TRIGGER_HAPPY28" , EV_KEY , BTN_TRIGGER_HAPPY28 }, -+ { "BTN_TRIGGER_HAPPY29" , EV_KEY , BTN_TRIGGER_HAPPY29 }, -+ { "BTN_TRIGGER_HAPPY30" , EV_KEY , BTN_TRIGGER_HAPPY30 }, -+ { "BTN_TRIGGER_HAPPY31" , EV_KEY , BTN_TRIGGER_HAPPY31 }, -+ { "BTN_TRIGGER_HAPPY32" , EV_KEY , BTN_TRIGGER_HAPPY32 }, -+ { "BTN_TRIGGER_HAPPY33" , EV_KEY , BTN_TRIGGER_HAPPY33 }, -+ { "BTN_TRIGGER_HAPPY34" , EV_KEY , BTN_TRIGGER_HAPPY34 }, -+ { "BTN_TRIGGER_HAPPY35" , EV_KEY , BTN_TRIGGER_HAPPY35 }, -+ { "BTN_TRIGGER_HAPPY36" , EV_KEY , BTN_TRIGGER_HAPPY36 }, -+ { "BTN_TRIGGER_HAPPY37" , EV_KEY , BTN_TRIGGER_HAPPY37 }, -+ { "BTN_TRIGGER_HAPPY38" , EV_KEY , BTN_TRIGGER_HAPPY38 }, -+ { "BTN_TRIGGER_HAPPY39" , EV_KEY , BTN_TRIGGER_HAPPY39 }, -+ { "BTN_TRIGGER_HAPPY40" , EV_KEY , BTN_TRIGGER_HAPPY40 }, -+ { "REL_X" , EV_REL , REL_X }, -+ { "REL_Y" , EV_REL , REL_Y }, -+ { "REL_Z" , EV_REL , REL_Z }, -+ { "REL_RX" , EV_REL , REL_RX }, -+ { "REL_RY" , EV_REL , REL_RY }, -+ { "REL_RZ" , EV_REL , REL_RZ }, -+ { "REL_HWHEEL" , EV_REL , REL_HWHEEL }, -+ { "REL_DIAL" , EV_REL , REL_DIAL }, -+ { "REL_WHEEL" , EV_REL , REL_WHEEL }, -+ { "REL_MISC" , EV_REL , REL_MISC }, -+ { "ABS_X" , EV_ABS , ABS_X }, -+ { "ABS_Y" , EV_ABS , ABS_Y }, -+ { "ABS_Z" , EV_ABS , ABS_Z }, -+ { "ABS_RX" , EV_ABS , ABS_RX }, -+ { "ABS_RY" , EV_ABS , ABS_RY }, -+ { "ABS_RZ" , EV_ABS , ABS_RZ }, -+ { "ABS_THROTTLE" , EV_ABS , ABS_THROTTLE }, -+ { "ABS_RUDDER" , EV_ABS , ABS_RUDDER }, -+ { "ABS_WHEEL" , EV_ABS , ABS_WHEEL }, -+ { "ABS_GAS" , EV_ABS , ABS_GAS }, -+ { "ABS_BRAKE" , EV_ABS , ABS_BRAKE }, -+ { "ABS_HAT0X" , EV_ABS , ABS_HAT0X }, -+ { "ABS_HAT0Y" , EV_ABS , ABS_HAT0Y }, -+ { "ABS_HAT1X" , EV_ABS , ABS_HAT1X }, -+ { "ABS_HAT1Y" , EV_ABS , ABS_HAT1Y }, -+ { "ABS_HAT2X" , EV_ABS , ABS_HAT2X }, -+ { "ABS_HAT2Y" , EV_ABS , ABS_HAT2Y }, -+ { "ABS_HAT3X" , EV_ABS , ABS_HAT3X }, -+ { "ABS_HAT3Y" , EV_ABS , ABS_HAT3Y }, -+ { "ABS_PRESSURE" , EV_ABS , ABS_PRESSURE }, -+ { "ABS_DISTANCE" , EV_ABS , ABS_DISTANCE }, -+ { "ABS_TILT_X" , EV_ABS , ABS_TILT_X }, -+ { "ABS_TILT_Y" , EV_ABS , ABS_TILT_Y }, -+ { "ABS_TOOL_WIDTH" , EV_ABS , ABS_TOOL_WIDTH }, -+ { "ABS_VOLUME" , EV_ABS , ABS_VOLUME }, -+ { "ABS_MISC" , EV_ABS , ABS_MISC }, -+ { "ABS_MT_TOUCH_MAJOR" , EV_ABS , ABS_MT_TOUCH_MAJOR }, -+ { "ABS_MT_TOUCH_MINOR" , EV_ABS , ABS_MT_TOUCH_MINOR }, -+ { "ABS_MT_WIDTH_MAJOR" , EV_ABS , ABS_MT_WIDTH_MAJOR }, -+ { "ABS_MT_WIDTH_MINOR" , EV_ABS , ABS_MT_WIDTH_MINOR }, -+ { "ABS_MT_ORIENTATION" , EV_ABS , ABS_MT_ORIENTATION }, -+ { "ABS_MT_POSITION_X" , EV_ABS , ABS_MT_POSITION_X }, -+ { "ABS_MT_POSITION_Y" , EV_ABS , ABS_MT_POSITION_Y }, -+ { "ABS_MT_TOOL_TYPE" , EV_ABS , ABS_MT_TOOL_TYPE }, -+ { "ABS_MT_BLOB_ID" , EV_ABS , ABS_MT_BLOB_ID }, -+ { "ABS_MT_TRACKING_ID" , EV_ABS , ABS_MT_TRACKING_ID }, -+ { "ABS_MT_PRESSURE" , EV_ABS , ABS_MT_PRESSURE }, -+ { "SW_LID" , EV_SW , SW_LID }, -+ { "SW_TABLET_MODE" , EV_SW , SW_TABLET_MODE }, -+ { "SW_HEADPHONE_INSERT" , EV_SW , SW_HEADPHONE_INSERT }, -+ { "SW_RFKILL_ALL" , EV_SW , SW_RFKILL_ALL }, -+ { "SW_RADIO" , EV_SW , SW_RADIO }, -+ { "SW_MICROPHONE_INSERT" , EV_SW , SW_MICROPHONE_INSERT }, -+ { "SW_DOCK" , EV_SW , SW_DOCK }, -+ { "SW_LINEOUT_INSERT" , EV_SW , SW_LINEOUT_INSERT }, -+ { "SW_JACK_PHYSICAL_INSERT" , EV_SW , SW_JACK_PHYSICAL_INSERT }, -+ { "SW_VIDEOOUT_INSERT" , EV_SW , SW_VIDEOOUT_INSERT }, -+ { "MSC_SERIAL" , EV_MSC , MSC_SERIAL }, -+ { "MSC_PULSELED" , EV_MSC , MSC_PULSELED }, -+ { "MSC_GESTURE" , EV_MSC , MSC_GESTURE }, -+ { "MSC_RAW" , EV_MSC , MSC_RAW }, -+ { "MSC_SCAN" , EV_MSC , MSC_SCAN }, -+ { "LED_NUML" , EV_LED , LED_NUML }, -+ { "LED_CAPSL" , EV_LED , LED_CAPSL }, -+ { "LED_SCROLLL" , EV_LED , LED_SCROLLL }, -+ { "LED_COMPOSE" , EV_LED , LED_COMPOSE }, -+ { "LED_KANA" , EV_LED , LED_KANA }, -+ { "LED_SLEEP" , EV_LED , LED_SLEEP }, -+ { "LED_SUSPEND" , EV_LED , LED_SUSPEND }, -+ { "LED_MUTE" , EV_LED , LED_MUTE }, -+ { "LED_MISC" , EV_LED , LED_MISC }, -+ { "LED_MAIL" , EV_LED , LED_MAIL }, -+ { "LED_CHARGING" , EV_LED , LED_CHARGING }, -+ { "SND_CLICK" , EV_SND , SND_CLICK }, -+ { "SND_BELL" , EV_SND , SND_BELL }, -+ { "SND_TONE" , EV_SND , SND_TONE }, -+ { NULL , 0 , 0 }, -+}; -+#endif ---- /dev/null -+++ eventlircd-0.0.1+svn20110129.2130/src/evkey_type.h -@@ -0,0 +1,486 @@ -+#ifndef _EVENTLIRCD_EVKEY_TYPE_H_ -+#define _EVENTLIRCD_EVKEY_TYPE_H_ 1 -+#include -+#define EVENTLIRCD_EVKEY_TYPE_NULL 0 -+#define EVENTLIRCD_EVKEY_TYPE_KEY 1 -+#define EVENTLIRCD_EVKEY_TYPE_BTN 2 -+static const int evkey_type[KEY_MAX] = { -+ [ KEY_ESC ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_1 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_2 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_3 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_4 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_5 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_6 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_7 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_8 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_9 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_0 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_MINUS ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_EQUAL ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BACKSPACE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_TAB ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_Q ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_W ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_E ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_R ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_T ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_Y ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_U ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_I ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_O ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_P ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_LEFTBRACE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_RIGHTBRACE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_ENTER ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_LEFTCTRL ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_A ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_S ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_D ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_G ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_H ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_J ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_K ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_L ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SEMICOLON ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_APOSTROPHE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_GRAVE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_LEFTSHIFT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BACKSLASH ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_Z ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_X ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_C ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_V ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_B ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_N ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_M ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_COMMA ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DOT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SLASH ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_RIGHTSHIFT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KPASTERISK ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_LEFTALT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SPACE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CAPSLOCK ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F1 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F2 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F3 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F4 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F5 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F6 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F7 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F8 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F9 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F10 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NUMLOCK ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SCROLLLOCK ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KP7 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KP8 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KP9 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KPMINUS ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KP4 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KP5 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KP6 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KPPLUS ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KP1 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KP2 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KP3 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KP0 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KPDOT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_ZENKAKUHANKAKU ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_102ND ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F11 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F12 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_RO ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KATAKANA ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_HIRAGANA ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_HENKAN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KATAKANAHIRAGANA ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_MUHENKAN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KPJPCOMMA ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KPENTER ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_RIGHTCTRL ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KPSLASH ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SYSRQ ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_RIGHTALT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_LINEFEED ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_HOME ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_UP ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PAGEUP ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_LEFT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_RIGHT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_END ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DOWN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PAGEDOWN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_INSERT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DELETE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_MACRO ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_MUTE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_VOLUMEDOWN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_VOLUMEUP ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_POWER ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KPEQUAL ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KPPLUSMINUS ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PAUSE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SCALE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KPCOMMA ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_HANGEUL ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_HANJA ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_YEN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_LEFTMETA ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_RIGHTMETA ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_COMPOSE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_STOP ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_AGAIN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PROPS ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_UNDO ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FRONT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_COPY ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_OPEN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PASTE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FIND ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CUT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_HELP ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_MENU ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CALC ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SETUP ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SLEEP ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_WAKEUP ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FILE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SENDFILE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DELETEFILE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_XFER ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PROG1 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PROG2 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_WWW ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_MSDOS ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_COFFEE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DIRECTION ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CYCLEWINDOWS ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_MAIL ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BOOKMARKS ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_COMPUTER ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BACK ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FORWARD ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CLOSECD ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_EJECTCD ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_EJECTCLOSECD ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NEXTSONG ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PLAYPAUSE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PREVIOUSSONG ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_STOPCD ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_RECORD ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_REWIND ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PHONE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_ISO ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CONFIG ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_HOMEPAGE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_REFRESH ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_EXIT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_MOVE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_EDIT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SCROLLUP ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SCROLLDOWN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KPLEFTPAREN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KPRIGHTPAREN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NEW ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_REDO ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F13 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F14 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F15 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F16 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F17 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F18 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F19 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F20 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F21 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F22 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F23 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_F24 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PLAYCD ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PAUSECD ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PROG3 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PROG4 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DASHBOARD ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SUSPEND ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CLOSE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PLAY ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FASTFORWARD ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BASSBOOST ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PRINT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_HP ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CAMERA ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SOUND ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_QUESTION ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_EMAIL ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CHAT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SEARCH ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CONNECT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FINANCE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SPORT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SHOP ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_ALTERASE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CANCEL ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BRIGHTNESSDOWN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BRIGHTNESSUP ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_MEDIA ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SWITCHVIDEOMODE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KBDILLUMTOGGLE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KBDILLUMDOWN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KBDILLUMUP ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SEND ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_REPLY ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FORWARDMAIL ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SAVE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DOCUMENTS ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BATTERY ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BLUETOOTH ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_WLAN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_UWB ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_UNKNOWN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_VIDEO_NEXT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_VIDEO_PREV ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BRIGHTNESS_CYCLE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BRIGHTNESS_ZERO ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DISPLAY_OFF ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_WIMAX ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ BTN_MISC ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_1 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_2 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_3 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_4 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_5 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_6 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_7 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_8 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_9 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_MOUSE ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_RIGHT ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_MIDDLE ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_SIDE ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_EXTRA ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_FORWARD ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_BACK ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TASK ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_JOYSTICK ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_THUMB ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_THUMB2 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TOP ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TOP2 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_PINKIE ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_BASE ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_BASE2 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_BASE3 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_BASE4 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_BASE5 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_BASE6 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_DEAD ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_GAMEPAD ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_B ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_C ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_X ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_Y ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_Z ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TL ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TR ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TL2 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TR2 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_SELECT ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_START ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_MODE ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_THUMBL ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_THUMBR ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_DIGI ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TOOL_RUBBER ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TOOL_BRUSH ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TOOL_PENCIL ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TOOL_AIRBRUSH ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TOOL_FINGER ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TOOL_MOUSE ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TOOL_LENS ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TOUCH ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_STYLUS ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_STYLUS2 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TOOL_DOUBLETAP ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TOOL_TRIPLETAP ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TOOL_QUADTAP ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_WHEEL ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_GEAR_UP ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ KEY_OK ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SELECT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_GOTO ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CLEAR ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_POWER2 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_OPTION ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_INFO ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_TIME ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_VENDOR ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_ARCHIVE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PROGRAM ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CHANNEL ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FAVORITES ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_EPG ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PVR ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_MHP ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_LANGUAGE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_TITLE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SUBTITLE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_ANGLE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_ZOOM ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_MODE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_KEYBOARD ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SCREEN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PC ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_TV ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_TV2 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_VCR ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_VCR2 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SAT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SAT2 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CD ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_TAPE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_RADIO ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_TUNER ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PLAYER ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_TEXT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DVD ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_AUX ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_MP3 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_AUDIO ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_VIDEO ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DIRECTORY ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_LIST ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_MEMO ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CALENDAR ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_RED ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_GREEN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_YELLOW ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BLUE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CHANNELUP ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CHANNELDOWN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FIRST ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_LAST ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_AB ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NEXT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_RESTART ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SLOW ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SHUFFLE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BREAK ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PREVIOUS ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DIGITS ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_TEEN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_TWEN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_VIDEOPHONE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_GAMES ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_ZOOMIN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_ZOOMOUT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_ZOOMRESET ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_WORDPROCESSOR ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_EDITOR ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SPREADSHEET ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_GRAPHICSEDITOR ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_PRESENTATION ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DATABASE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NEWS ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_VOICEMAIL ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_ADDRESSBOOK ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_MESSENGER ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DISPLAYTOGGLE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_SPELLCHECK ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_LOGOFF ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DOLLAR ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_EURO ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FRAMEBACK ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FRAMEFORWARD ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_CONTEXT_MENU ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_MEDIA_REPEAT ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DEL_EOL ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DEL_EOS ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_INS_LINE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_DEL_LINE ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_ESC ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_F1 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_F2 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_F3 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_F4 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_F5 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_F6 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_F7 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_F8 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_F9 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_F10 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_F11 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_F12 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_1 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_2 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_D ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_E ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_F ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_S ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_FN_B ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BRL_DOT1 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BRL_DOT2 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BRL_DOT3 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BRL_DOT4 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BRL_DOT5 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BRL_DOT6 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BRL_DOT7 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BRL_DOT8 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BRL_DOT9 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_BRL_DOT10 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NUMERIC_0 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NUMERIC_1 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NUMERIC_2 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NUMERIC_3 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NUMERIC_4 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NUMERIC_5 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NUMERIC_6 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NUMERIC_7 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NUMERIC_8 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NUMERIC_9 ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NUMERIC_STAR ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ KEY_NUMERIC_POUND ] = EVENTLIRCD_EVKEY_TYPE_KEY, -+ [ BTN_TRIGGER_HAPPY ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY2 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY3 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY4 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY5 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY6 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY7 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY8 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY9 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY10 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY11 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY12 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY13 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY14 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY15 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY16 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY17 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY18 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY19 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY20 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY21 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY22 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY23 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY24 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY25 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY26 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY27 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY28 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY29 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY30 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY31 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY32 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY33 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY34 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY35 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY36 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY37 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY38 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY39 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+ [ BTN_TRIGGER_HAPPY40 ] = EVENTLIRCD_EVKEY_TYPE_BTN, -+}; -+#endif diff -Nru eventlircd-0.0.1+svn20110129.2130/debian/patches/debian-changes-0.0.1+svn20110409.0930-0yavdr0~lucid eventlircd-0.0.1+svn20110409.0930/debian/patches/debian-changes-0.0.1+svn20110409.0930-0yavdr0~lucid --- eventlircd-0.0.1+svn20110129.2130/debian/patches/debian-changes-0.0.1+svn20110409.0930-0yavdr0~lucid 1970-01-01 00:00:00.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/debian/patches/debian-changes-0.0.1+svn20110409.0930-0yavdr0~lucid 2011-04-09 07:51:42.000000000 +0000 @@ -0,0 +1,43 @@ +Description: Upstream changes introduced in version 0.0.1+svn20110409.0930-0yavdr0~lucid + This patch has been created by dpkg-source during the package build. + Here's the last changelog entry, hopefully it gives details on why + those changes were made: + . + eventlircd (0.0.1+svn20110409.0930-0yavdr0~lucid) lucid; urgency=low + . + * Initial release + . + The person named in the Author field signed this changelog entry. +Author: Holger Schvestka + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: , +Bug: +Bug-Debian: http://bugs.debian.org/ +Forwarded: +Reviewed-By: +Last-Update: + +--- eventlircd-0.0.1+svn20110409.0930.orig/etc/04_0c16_0002.evmap ++++ eventlircd-0.0.1+svn20110409.0930/etc/04_0c16_0002.evmap +@@ -1,4 +1,9 @@ +-KEY_BACKSPACE = KEY_BACK ++KEY_BACK = KEY_MENU ++KEY_PROPS = KEY_EXIT ++KEY_PVR = KEY_SUBTITLE ++KEY_PROGRAM = KEY_AUDIO ++KEY_PREVIOUSSONG = KEY_PREVIOUS ++KEY_NEXTSONG = KEY_NEXT + KEY_KP1 = KEY_NUMERIC_1 + KEY_KP2 = KEY_NUMERIC_2 + KEY_KP3 = KEY_NUMERIC_3 +@@ -10,3 +15,5 @@ KEY_KP8 = KEY_NUMERIC_8 + KEY_KP9 = KEY_NUMERIC_9 + KEY_KP0 = KEY_NUMERIC_0 + KEY_KPASTERISK = KEY_NUMERIC_STAR ++KEY_SLEEP = KEY_POWER ++KEY_STOPCD = KEY_STOP diff -Nru eventlircd-0.0.1+svn20110129.2130/debian/patches/lircd-helper eventlircd-0.0.1+svn20110409.0930/debian/patches/lircd-helper --- eventlircd-0.0.1+svn20110129.2130/debian/patches/lircd-helper 1970-01-01 00:00:00.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/debian/patches/lircd-helper 2011-04-02 20:15:15.000000000 +0000 @@ -0,0 +1,11 @@ +--- eventlircd-0.0.1+svn20110129.2130.orig/udev/lircd_helper.in ++++ eventlircd-0.0.1+svn20110129.2130/udev/lircd_helper.in +@@ -35,7 +35,7 @@ case "${ACTION}" in + fi + devname_instance=`echo ${DEVNAME} | sed -e 's/\/\+/~/g' -e 's/^~dev~//'` + if test ! -e "@localstatedir@/run/lirc/lircd-${devname_instance}.pid" ; then +- daemon='@sbindir@/lircd' ++ daemon='/usr/sbin/lircd' + daemon="${daemon} --driver=${lircd_driver}" + daemon="${daemon} --device=${DEVNAME}" + daemon="${daemon} --uinput" diff -Nru eventlircd-0.0.1+svn20110129.2130/debian/patches/series eventlircd-0.0.1+svn20110409.0930/debian/patches/series --- eventlircd-0.0.1+svn20110129.2130/debian/patches/series 2011-01-29 21:28:31.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/debian/patches/series 2011-04-09 07:51:42.000000000 +0000 @@ -1,2 +1,6 @@ werror -debian-changes-0.0.1+svn20110129.2130-0yavdr4 +03_05a4_9881.evmap +03_0755_2626.evmap +04_0c16_0002.evmap +lircd-helper +debian-changes-0.0.1+svn20110409.0930-0yavdr0~lucid diff -Nru eventlircd-0.0.1+svn20110129.2130/debian/udev/98-eventlircd.rules eventlircd-0.0.1+svn20110409.0930/debian/udev/98-eventlircd.rules --- eventlircd-0.0.1+svn20110129.2130/debian/udev/98-eventlircd.rules 1970-01-01 00:00:00.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/debian/udev/98-eventlircd.rules 2011-04-04 20:17:30.000000000 +0000 @@ -0,0 +1,108 @@ +################################################################################ +# An example udev rules file for eventlircd. +# +# This rules file does not start eventlircd. Many applications only check for +# the lircd socket at application lauch. Therefore, it is better to start +# eventlircd in an init script so that eventlircd creates the lircd socket +# before any applications that use LIRC launch. +################################################################################ + +# eventlircd only does something for "add" and "remove" actions. +ACTION!="add|remove", GOTO="end" + +# eventlircd only does something "input" subsystem devices. +SUBSYSTEM!="input", GOTO="end" + +# eventlircd can only handle event devices. +KERNEL!="event[0-9]*", GOTO="end" + +# eventlircd ignores devices created by eventlircd. +ATTRS{name}=="eventlircd", GOTO="end" + +#------------------------------------------------------------------------------- +# Ask eventlircd to handle input event devices created by lircd. For this to +# work, lircd must be configured to output Linux input events and must be +# configured to output key names that conform to the LIRC namespace derived from +# the Linux key/button event names. This rule assumes that lircd performs all +# key mappings, so the rule does not provide a value for "eventlircd_evmap". +# For more information on lircd, see . +#------------------------------------------------------------------------------- +ATTRS{name}=="lircd", \ + ENV{eventlircd_enable}="true" + +#------------------------------------------------------------------------------- +# Ask eventlircd to handle input event devices created by bdremoteng. For this +# to work, bdremoteng must be configured to output Linux input events and must +# be configured to output key names that conform to LIRC namespace derived +# from the Linux key/button event names. For more information on bdremoteng, +# see . +#------------------------------------------------------------------------------- +ATTRS{name}=="bdremoteng", \ + ENV{eventlircd_enable}="true", \ + ENV{eventlircd_evmap}="bdremoteng.evmap" + +#------------------------------------------------------------------------------- +# Ask eventlircd to handle input event devices created by wminput. This rule +# assumes that wminput performs all key mappings, so the rule does not provide a +# value for "eventlircd_evmap" For more information on wminput, see +# . +#------------------------------------------------------------------------------- +ATTRS{name}=="bdremoteng", \ + ENV{eventlircd_enable}="true" + +#------------------------------------------------------------------------------- +# Ask eventlircd to handle input event devices created by ir-core (kernel). +#------------------------------------------------------------------------------- +SUBSYSTEMS=="rc", \ + ENV{eventlircd_enable}="true" \ + ENV{eventlircd_evmap}="ircore.evmap" + +#------------------------------------------------------------------------------- +# Ask eventlircd to handle USB HID devices that show up as event devices and are +# known to be remote controls. For simplicity, the event map file names have the +# format __.evmap. +#------------------------------------------------------------------------------- +SUBSYSTEMS=="usb", GOTO="begin-usb" +GOTO="end-usb" +LABEL="begin-usb" + +ENV{ID_USB_INTERFACES}=="", IMPORT{program}="usb_id --export %p" + +ENV{ID_VENDOR_ID}=="0419", ENV{ID_MODEL_ID}=="0001", \ + ENV{eventlircd_enable}="true",\ + ENV{eventlircd_evmap}="03_$env{ID_VENDOR_ID}_$env{ID_MODEL_ID}.evmap" + +ENV{ID_VENDOR_ID}=="05a4", ENV{ID_MODEL_ID}=="9881", \ + ENV{eventlircd_enable}="true", \ + ENV{eventlircd_evmap}="03_$env{ID_VENDOR_ID}_$env{ID_MODEL_ID}.evmap" + +ENV{ID_VENDOR_ID}=="0755", ENV{ID_MODEL_ID}=="2626", \ + ENV{eventlircd_enable}="true", \ + ENV{eventlircd_evmap}="03_$env{ID_VENDOR_ID}_$env{ID_MODEL_ID}.evmap" + +ENV{ID_VENDOR_ID}=="0766", ENV{ID_MODEL_ID}=="0204", \ + ENV{eventlircd_enable}="true", \ + ENV{eventlircd_evmap}="03_$env{ID_VENDOR_ID}_$env{ID_MODEL_ID}.evmap" + +ENV{ID_VENDOR_ID}=="1241", ENV{ID_MODEL_ID}=="e000", \ + ENV{eventlircd_enable}="true", \ + ENV{eventlircd_evmap}="03_$env{ID_VENDOR_ID}_$env{ID_MODEL_ID}.evmap" + +ENV{ID_VENDOR_ID}=="147a", ENV{ID_MODEL_ID}=="e02d", \ + ENV{eventlircd_enable}="true", \ + ENV{eventlircd_evmap}="03_$env{ID_VENDOR_ID}_$env{ID_MODEL_ID}.evmap" + +ENV{ID_VENDOR_ID}=="0c16", ENV{ID_MODEL_ID}=="0002", \ + ENV{eventlircd_enable}="true", \ + ENV{eventlircd_evmap}="04_$env{ID_VENDOR_ID}_$env{ID_MODEL_ID}.evmap" + +ENV{ID_VENDOR_ID}=="0755", ENV{ID_MODEL_ID}=="2626", \ + ENV{eventlircd_enable}="true", \ + ENV{eventlircd_evmap}="03_$env{ID_VENDOR_ID}_$env{ID_MODEL_ID}.evmap" + +# Enable wake-on-usb for the USB remotes. +ENV{eventlircd_enable}=="true", RUN+="wakeup_enable" + +LABEL="end-usb" + +LABEL="end" diff -Nru eventlircd-0.0.1+svn20110129.2130/debian/udev/98-eventlircd-sundtek.rules eventlircd-0.0.1+svn20110409.0930/debian/udev/98-eventlircd-sundtek.rules --- eventlircd-0.0.1+svn20110129.2130/debian/udev/98-eventlircd-sundtek.rules 1970-01-01 00:00:00.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/debian/udev/98-eventlircd-sundtek.rules 2011-03-07 13:24:45.000000000 +0000 @@ -0,0 +1,28 @@ +################################################################################ +# An udev rules file for eventlircd to handle Sundtek DVB devices. +# +# This rules file does not start eventlircd. Many applications only check for +# the lircd socket at application lauch. Therefore, it is better to start +# eventlircd in an init script so that eventlircd creates the lircd socket +# before any applications that use LIRC launch. +################################################################################ + +# eventlircd only does something for "add" and "remove" actions. +ACTION!="add|remove", GOTO="end" + +# eventlircd only does something "input" subsystem devices. +SUBSYSTEM!="input", GOTO="end" + +# eventlircd can only handle event devices. +KERNEL!="event[0-9]*", GOTO="end" + +# eventlircd ignores devices created by eventlircd. +ATTRS{name}=="eventlircd", GOTO="end" + +#------------------------------------------------------------------------------- +# Ask eventlircd to handle input event devices created by Sundtek DVB devices. +#------------------------------------------------------------------------------- +ATTRS{name}=="Sundtek Ltd. Remote Control", \ + ENV{eventlircd_enable}="true" + +LABEL="end" diff -Nru eventlircd-0.0.1+svn20110129.2130/debian/udev/98-lircd.rules eventlircd-0.0.1+svn20110409.0930/debian/udev/98-lircd.rules --- eventlircd-0.0.1+svn20110129.2130/debian/udev/98-lircd.rules 1970-01-01 00:00:00.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/debian/udev/98-lircd.rules 2011-03-15 17:40:37.000000000 +0000 @@ -0,0 +1,49 @@ +################################################################################ +# An example udev rules file for lircd. +################################################################################ + +# lircd_helper only does something for "add" and "remove" actions. +ACTION!="add|remove", GOTO="end" + +KERNEL=="hiddev[0-9]*", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", GOTO="begin" +KERNEL=="lirc[0-9]*", SUBSYSTEM=="lirc", SUBSYSTEMS=="i2c", GOTO="begin" +KERNEL=="lirc[0-9]*", SUBSYSTEM=="lirc", SUBSYSTEMS=="usb", GOTO="begin" +GOTO="end" +LABEL="begin" + +#------------------------------------------------------------------------------- +# Ask lircd_helper to lirc devices. +#------------------------------------------------------------------------------- +SUBSYSTEM=="lirc", \ + ENV{lircd_driver}="default", \ + ENV{lircd_conf}="/etc/lirc/lircd.conf" + +#------------------------------------------------------------------------------- +# Ask lircd_helper to handle USB devices that do not show up as lirc devices +# and are supported by lircd. Remote controls that are USB HID devices that show +# up as event devices are not included as as they are handled by eventlircd. +#------------------------------------------------------------------------------- +SUBSYSTEMS=="usb", GOTO="begin-usb" +SUBSYSTEMS=="usb", GOTO="begin-usb" +GOTO="end-usb" +LABEL="begin-usb" + +ENV{ID_USB_INTERFACES}=="", IMPORT{program}="usb_id --export %p" + +ENV{ID_VENDOR_ID}=="0fe9", ENV{ID_MODEL_ID}=="9010", \ + ENV{lircd_driver}="dvicoo", \ + ENV{lircd_conf}="/etc/lirc/lircd.conf" + +ENV{ID_VENDOR_ID}=="0b48", ENV{ID_MODEL_ID}=="2003", \ + ENV{lircd_driver}="default", \ + ENV{lircd_conf}="/usr/share/eventlircd/remotes/ttusbir/ttusbir-lircd.conf" + + +# Enable wake-on-usb for the USB remotes. +ENV{lircd_driver}=="?*", ENV{lircd_conf}=="?*", RUN+="wakeup_enable" + +LABEL="end-usb" + +ENV{lircd_driver}=="?*", ENV{lircd_conf}=="?*", RUN+="lircd_helper" + +LABEL="end" diff -Nru eventlircd-0.0.1+svn20110129.2130/debian/udev/98-lirc-hama.rules eventlircd-0.0.1+svn20110409.0930/debian/udev/98-lirc-hama.rules --- eventlircd-0.0.1+svn20110129.2130/debian/udev/98-lirc-hama.rules 1970-01-01 00:00:00.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/debian/udev/98-lirc-hama.rules 2011-03-08 21:29:42.000000000 +0000 @@ -0,0 +1 @@ +KERNEL=="event*",ATTR{name}=="HID 05a4:9881",SYMLINK="input/ira" diff -Nru eventlircd-0.0.1+svn20110129.2130/debian/usr-share-remotes/ttusbir/ttusbir-lircd.conf eventlircd-0.0.1+svn20110409.0930/debian/usr-share-remotes/ttusbir/ttusbir-lircd.conf --- eventlircd-0.0.1+svn20110129.2130/debian/usr-share-remotes/ttusbir/ttusbir-lircd.conf 1970-01-01 00:00:00.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/debian/usr-share-remotes/ttusbir/ttusbir-lircd.conf 2011-03-16 10:11:12.000000000 +0000 @@ -0,0 +1,318 @@ +# Please make this file available to others +# by sending it to +# +# this config file was automatically generated +# using lirc-0.8.6(default) on Tue Mar 15 18:28:11 2011 +# +# contributed by +# +# brand: technotrend +# http://www.dvbshop.net/product_info.php?refID=geizhals&info=p57_TechnoTrend-USB-IR-Empfaenger-Kit.html +# +# + +begin remote + + name technotrend-remote + bits 13 + flags RC5 + eps 30 + aeps 100 + + one 796 773 + zero 796 773 + plead 806 + gap 83880 + toggle_bit_mask 0x0 + + begin codes + KEY_UP 0x154D + KEY_DOWN 0x1D51 + KEY_MENU 0x1542 + KEY_ENTER 0x1D4F + KEY_BACK 0x1553 + KEY_LEFT 0x1D4E + KEY_RIGHT 0x1550 + KEY_RED 0x1D54 + KEY_GREEN 0x1555 + KEY_YELLOW 0x1D56 + KEY_BLUE 0x1557 + KEY_NUMERIC_0 0x1D4C + KEY_NUMERIC_1 0x1543 + KEY_NUMERIC_2 0x1D44 + KEY_NUMERIC_3 0x1545 + KEY_NUMERIC_4 0x1D46 + KEY_NUMERIC_5 0x1547 + KEY_NUMERIC_6 0x1D48 + KEY_NUMERIC_7 0x1549 + KEY_NUMERIC_8 0x1D4A + KEY_NUMERIC_9 0x154B + KEY_EPG 0x1D62 + KEY_PLAY 0x157B + KEY_PAUSE 0x1D7E + KEY_STOP 0x157C + KEY_RECORD 0x1D54 + KEY_FASTFORWARD 0x157F + KEY_REWIND 0x1D7D + KEY_INFO 0x1552 + KEY_POWER 0x1D41 + KEY_CHANNELUP 0x1563 + KEY_CHANNELDOWN 0x1D64 + KEY_VOLUMEUP 0x1565 + KEY_VOLUMEDOWN 0x1D66 + KEY_MUTE 0x1558 + KEY_TEXT 0x1D59 + KEY_MP3 0x155A + end codes + +end remote + +# Please make this file available to others +# by sending it to +# +# this config file was automatically generated +# using lirc-0.7.0pre1(serial) on Tue May 6 16:52:45 2003 +# +# contributed by Steffen Einsle +# +# brand: Tevion MD4689 - Code 773 on DSAT +# model no. of remote control: MD-4689 +# devices being controlled by this remote: VDR +# + +begin remote + +# name MD4689-DSAT-773 +# bits 16 +# flags SPACE_ENC|CONST_LENGTH +# eps 30 +# aeps 100 +# +# header 8998 4436 +# one 599 1630 +# zero 599 523 +# ptrail 606 +# repeat 9003 4429 +# pre_data_bits 26 +# pre_data 0x1D8113F +# gap 107266 +# min_repeat 1 +# toggle_bit 0 + + name MD4689-DSAT-773 + bits 16 + flags SPACE_ENC|CONST_LENGTH + eps 50 + aeps 250 + + header 9049 4435 + one 618 1620 + zero 618 507 + ptrail 615 + repeat 9052 4434 + pre_data_bits 26 + pre_data 0x1D8113F + gap 107585 + toggle_bit 0 + +# +# Some keys are mirrored : +# +# PLAY +# REW FWD +# STOP +# +# are the same keys as +# +# UP +# LEFT RIGHT +# DOWN +# +# MUTE is same key as VOL- +# MAGENTA is same key as OK +# +# + + + begin codes + KEY_POWER 0x00000000000000FF +# MUTE is VOL- + + KEY_CHANELDOWN 0x000000000000D827 + KEY_CHANELUP 0x000000000000F807 + + KEY_VOLUMEUP 0x000000000000B24D + KEY_VOLDOWN 0x000000000000728D + + KEY_TEXT 0x000000000000E817 + KEY_EPG 0x0000000000006897 + KEY_TV 0x00000000000038C7 + KEY_MP3 0x000000000000A857 + KEY_WWW 0x0000000000009867 + + KEY_RED 0x0000000000008A75 + KEY_GREEN 0x0000000000004AB5 + KEY_YELLOW 0x0000000000001AE5 + KEY_BLUE 0x000000000000CA35 +# MAGENTA is OK + + KEY_NUMERIC_1 0x000000000000807F + KEY_NUMERIC_2 0x00000000000040BF + KEY_NUMERIC_3 0x000000000000C03F + KEY_NUMERIC_4 0x00000000000020DF + KEY_NUMERIC_5 0x000000000000A05F + KEY_NUMERIC_6 0x000000000000609F + KEY_NUMERIC_7 0x000000000000E01F + KEY_NUMERIC_8 0x00000000000010EF + KEY_NUMERIC_9 0x000000000000906F + KEY_NUMERIC_0 0x00000000000050AF + KEY_INFO 0x000000000000B847 + KEY_ENTER 0x000000000000D02F + + KEY_UP 0x00000000000002FD + KEY_LEFT 0x000000000000C23D + KEY_RIGHT 0x00000000000042BD + KEY_DOWN 0x000000000000827D + KEY_OK 0x00000000000028D7 + + KEY_MENU 0x000000000000FF00 + KEY_BACK 0x000000000000708F + +# REW is LEFT +# PLAY is UP +# FWD is RIGHT +# STOP is DOWN + KEY_RECORD 0x000000000000A25D + KEY_PAUSE 0x00000000000022DD + + end codes + +end remote + +# brand: Silvercrest +# model no. of remote control: RCH7S52 +# devices being controlled by this remote: DVD 091 +# + +begin remote + + name Silvercrest RCH7S52 + bits 32 + flags SPACE_ENC|CONST_LENGTH + eps 30 + aeps 100 + + header 8840 4338 + one 521 1565 + zero 521 446 + ptrail 524 + repeat 8850 2108 + gap 105691 + toggle_bit_mask 0x0 + + begin codes + KEY_MUTE 0x04FB8A75 + KEY_POWER 0x04FB708F + KEY_OK 0x04FB3AC5 + KEY_UP 0x04FB22DD + KEY_DOWN 0x04FBB847 + KEY_LEFT 0x04FB38C7 + KEY_RIGHT 0x04FB12ED + KEY_MENU 0x04FB42BD + KEY_BACK 0x04FB02FD + KEY_VOLUMEUP 0x04FB728D + KEY_VOLUMEDOWN 0x04FBF20D + KEY_CHANNELDOWN 0x04FBC23D + KEY_CHANNELUP 0x04FB7887 + KEY_TEXT 0x04FB40BF + KEY_EPG 0x04FBD827 + KEY_INFO 0x04FB18E7 + KEY_MP3 0x04FBBA45 + KEY_RED 0x04FB50AF + KEY_YELLOW 0x04FBE21D + KEY_BLUE 0x04FB6897 + KEY_GREEN 0x04FB48B7 + KEY_REWIND 0x04FB9867 + KEY_PLAY 0x04FBAA55 + KEY_FORWARD 0x04FB9A65 + KEY_RECORD 0x04FB2AD5 + KEY_STOP 0x04FB28D7 + KEY_PAUSE 0x04FBA857 + KEY_1 0x04FBC837 + KEY_2 0x04FB08F7 + KEY_3 0x04FB8877 + KEY_4 0x04FBF00F + KEY_5 0x04FB30CF + KEY_6 0x04FBB04F + KEY_7 0x04FBD02F + KEY_8 0x04FB10EF + KEY_9 0x04FB906F + KEY_0 0x04FB926D + KEY_TV 0x04FBE817 + KEY_EXIT 0x04FBB24D + end codes + +end remote + +# brand: Vivanco +# model no. of remote control: UR 89 +# devices being controlled by this remote: DVD 150 +# + +begin remote + + name vivanco-ur89 + bits 32 + flags SPACE_ENC|CONST_LENGTH + eps 30 + aeps 100 + + header 8865 4326 + one 554 1550 + zero 554 443 + ptrail 552 + repeat 8863 2117 + gap 105752 + toggle_bit_mask 0x0 + + begin codes + KEY_MENU 0x419EF807 + KEY_BACK 0x419E58A7 + KEY_DOWN 0x419E3AC5 + KEY_UP 0x419E32CD + KEY_OK 0x419EFF00 + KEY_RED 0x419E2AD5 + KEY_BLUE 0x419E12ED + KEY_YELLOW 0x419E7887 + KEY_GREEN 0x419E9867 + KEY_RECORD 0x419E906F + KEY_PAUSE 0x419EFF00 + KEY_1 0x419EB04F + KEY_2 0x419E30CF + KEY_3 0x419EF00F + KEY_4 0x419E8877 + KEY_5 0x419E08F7 + KEY_6 0x419EC837 + KEY_7 0x419EA857 + KEY_8 0x419E28D7 + KEY_9 0x419EE817 + KEY_0 0x419E18E7 + KEY_ENTER 0x419EFF00 + KEY_INFO 0x419ED827 + KEY_CHANNELDOWN 0x419E6897 + KEY_CHANNELUP 0x419E48B7 + KEY_VOLUMEDOWN 0x419E0AF5 + KEY_VOLUMEUP 0x419E02FD + KEY_PAUSE 0x419EFF00 + KEY_TEXT 0x419E58A7 + KEY_MP3 0x419EF807 + KEY_BOOKMARKS 0x419EB847 + KEY_VIDEO 0x419E20DF + KEY_NEXT 0x419E708F + KEY_PREVIOUS 0x419ED827 + KEY_MUTE 0x419E38C7 + KEY_POWER 0x419E609F + KEY_EXIT 0x419E58A7 + end codes + +end remote diff -Nru eventlircd-0.0.1+svn20110129.2130/etc/.svn/all-wcprops eventlircd-0.0.1+svn20110409.0930/etc/.svn/all-wcprops --- eventlircd-0.0.1+svn20110129.2130/etc/.svn/all-wcprops 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/etc/.svn/all-wcprops 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 26 -/svn/!svn/ver/40/trunk/etc -END -03_147a_e02d.evmap -K 25 -svn:wc:ra_dav:version-url -V 44 -/svn/!svn/ver/8/trunk/etc/03_147a_e02d.evmap -END -03_0766_0204.evmap -K 25 -svn:wc:ra_dav:version-url -V 44 -/svn/!svn/ver/8/trunk/etc/03_0766_0204.evmap -END -lircd.evmap -K 25 -svn:wc:ra_dav:version-url -V 38 -/svn/!svn/ver/40/trunk/etc/lircd.evmap -END -03_1241_e000.evmap -K 25 -svn:wc:ra_dav:version-url -V 45 -/svn/!svn/ver/40/trunk/etc/03_1241_e000.evmap -END -03_0419_0001.evmap -K 25 -svn:wc:ra_dav:version-url -V 44 -/svn/!svn/ver/8/trunk/etc/03_0419_0001.evmap -END -Makefile.am -K 25 -svn:wc:ra_dav:version-url -V 38 -/svn/!svn/ver/40/trunk/etc/Makefile.am -END -ircore.evmap -K 25 -svn:wc:ra_dav:version-url -V 39 -/svn/!svn/ver/40/trunk/etc/ircore.evmap -END -default.evmap -K 25 -svn:wc:ra_dav:version-url -V 40 -/svn/!svn/ver/39/trunk/etc/default.evmap -END -03_05a4_9881.evmap -K 25 -svn:wc:ra_dav:version-url -V 44 -/svn/!svn/ver/8/trunk/etc/03_05a4_9881.evmap -END -mcekbd.evmap -K 25 -svn:wc:ra_dav:version-url -V 38 -/svn/!svn/ver/8/trunk/etc/mcekbd.evmap -END -bdremoteng.evmap -K 25 -svn:wc:ra_dav:version-url -V 43 -/svn/!svn/ver/14/trunk/etc/bdremoteng.evmap -END diff -Nru eventlircd-0.0.1+svn20110129.2130/etc/.svn/entries eventlircd-0.0.1+svn20110409.0930/etc/.svn/entries --- eventlircd-0.0.1+svn20110129.2130/etc/.svn/entries 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/etc/.svn/entries 1970-01-01 00:00:00.000000000 +0000 @@ -1,402 +0,0 @@ -10 - -dir -41 -http://eventlircd.googlecode.com/svn/trunk/etc -http://eventlircd.googlecode.com/svn - - - -2010-11-25T04:30:10.919045Z -40 -pebender - - - - - - - - - - - - - - -bd17559c-f4b9-11de-82c3-25da7dca7fdf - -03_147a_e02d.evmap -file - - - - -2011-01-29T16:45:12.525417Z -9c00ed8116772fac526ae2338e2980c8 -2010-02-06T17:49:24.329457Z -8 -pebender - - - - - - - - - - - - - - - - - - - - - -810 - -03_0766_0204.evmap -file - - - - -2011-01-29T16:45:12.525417Z -ff233513a702d48c29674f3d4ecd5609 -2010-02-06T17:49:24.329457Z -8 -pebender - - - - - - - - - - - - - - - - - - - - - -2032 - -lircd.evmap -file - - - - -2011-01-29T16:45:12.525417Z -d41d8cd98f00b204e9800998ecf8427e -2010-11-25T04:30:10.919045Z -40 -pebender - - - - - - - - - - - - - - - - - - - - - -0 - -03_1241_e000.evmap -file - - - - -2011-01-29T16:45:12.525417Z -813e1ccf517093c7ae958e46de82c264 -2010-11-25T04:30:10.919045Z -40 -pebender - - - - - - - - - - - - - - - - - - - - - -1457 - -03_0419_0001.evmap -file - - - - -2011-01-29T16:45:12.525417Z -e007221fb6ee1fb85da7ee6d30ee0627 -2010-02-06T17:49:24.329457Z -8 -pebender - - - - - - - - - - - - - - - - - - - - - -2088 - -Makefile.am -file - - - - -2011-01-29T16:45:12.525417Z -275677c62d1b5abe5a635f74fd1ce18b -2010-11-25T04:30:10.919045Z -40 -pebender - - - - - - - - - - - - - - - - - - - - - -237 - -ircore.evmap -file - - - - -2011-01-29T16:45:12.529418Z -ee0c5446fa3c8fb3928b961a63a11eed -2010-11-25T04:30:10.919045Z -40 -pebender - - - - - - - - - - - - - - - - - - - - - -953 - -default.evmap -file - - - - -2011-01-29T16:45:12.529418Z -a2dc3513390321a75d48a79ad2b66649 -2010-11-15T15:22:24.088628Z -39 -pebender - - - - - - - - - - - - - - - - - - - - - -680 - -03_05a4_9881.evmap -file - - - - -2011-01-29T16:45:12.529418Z -80a633ed4e4f62aca6d8d00586a6dee9 -2010-02-06T17:49:24.329457Z -8 -pebender - - - - - - - - - - - - - - - - - - - - - -2885 - -mcekbd.evmap -file - - - - -2011-01-29T16:45:12.529418Z -813e1ccf517093c7ae958e46de82c264 -2010-02-06T17:49:24.329457Z -8 -pebender - - - - - - - - - - - - - - - - - - - - - -1457 - -bdremoteng.evmap -file - - - - -2011-01-29T16:45:12.529418Z -5e4a74f481bcafb0f8a72186b7fc6800 -2010-02-06T21:07:22.706689Z -14 -pebender - - - - - - - - - - - - - - - - - - - - - -396 - diff -Nru eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/03_0419_0001.evmap.svn-base eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/03_0419_0001.evmap.svn-base --- eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/03_0419_0001.evmap.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/03_0419_0001.evmap.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -# = # Power - ctrl+shift+alt+KEY_2 = KEY_PVR # TV/DVR - ctrl+shift+alt+KEY_H = KEY_PRINT # Print - alt+KEY_F4 = KEY_CLOSE # Close - ctrl+shift+alt+KEY_3 = KEY_MP3 # Music - ctrl+shift+alt+KEY_4 = KEY_MEDIA # Pictures - ctrl+shift+alt+KEY_5 = KEY_VIDEO # Videos - ctrl+shift+alt+KEY_1 = KEY_CONTEXT_MENU # DVD/Menu -#KEY_UP = KEY_UP # Up -#KEY_DOWN = KEY_DOWN # Down -#KEY_LEFT = KEY_LEFT # Left -#KEY_RIGHT = KEY_RIGHT # Right - KEY_BACKSPACE = KEY_BACK # Back -#KEY_ENTER = KEY_ENTER # Ok - KEY_TAB = KEY_TAB # Tab - ctrl+KEY_B = KEY_PREVIOUS # Previous - ctrl+KEY_P = KEY_PLAYPAUSE # Play/Pause - ctrl+KEY_F = KEY_NEXT # Next - ctrl+shift+KEY_B = KEY_REWIND # Rew - ctrl+KEY_S = KEY_STOP # Stop - ctrl+shift+KEY_F = KEY_FORWARD # Fwd -# = KEY_VOLUMEDOWN # Vol- -# = KEY_VOLUMEUP # Vol+ - ctrl+shift+alt+KEY_HOME = KEY_MENU # Home -#KEY_PAGEDOWN = KEY_PAGEDOWN # Ch- -#KEY_PAGEUP = KEY_PAGEUP # Ch+ -# = KEY_MUTE # Mute - ctrl+KEY_R = KEY_RECORD # Record -# = # Toggle - KEY_1 = KEY_NUMERIC_1 # 1 - KEY_2 = KEY_NUMERIC_2 # 2 - KEY_3 = KEY_NUMERIC_3 # 3 - KEY_4 = KEY_NUMERIC_4 # 4 - KEY_5 = KEY_NUMERIC_5 # 5 - KEY_6 = KEY_NUMERIC_6 # 6 - KEY_7 = KEY_NUMERIC_7 # 7 - KEY_8 = KEY_NUMERIC_8 # 8 - KEY_9 = KEY_NUMERIC_9 # 9 - KEY_0 = KEY_NUMERIC_0 # 0 - ctrl+shift+alt+KEY_F = KEY_SHUFFLE # Shuffle - ctrl+shift+alt+KEY_B = KEY_MEDIA_REPEAT # Repeat diff -Nru eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/03_05a4_9881.evmap.svn-base eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/03_05a4_9881.evmap.svn-base --- eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/03_05a4_9881.evmap.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/03_05a4_9881.evmap.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - KEY_HOMEPAGE = KEY_WWW # WWW - KEY_SLEEP = KEY_POWER # Sleep - ctrl+shift+KEY_T = KEY_VCR # My TV - ctrl+KEY_M = KEY_MP3 # My Music - ctrl+KEY_I = KEY_MEDIA # My Pictures - ctrl+KEY_E = KEY_VIDEO # My Videos - ctrl+KEY_O = KEY_VCR2 # Record TV - ctrl+KEY_G = KEY_PROGRAM # Guide - ctrl+KEY_T = KEY_TV # Live TV - ctrl+shift+KEY_M = KEY_DVD # DVD Menu - KEY_PLAYPAUSE = KEY_PLAYPAUSE # Play (also used for Pause) -#KEY_PLAYPAUSE = KEY_PLAYPAUSE # Pause (also used for Play) - ctrl+shift+KEY_B = KEY_REWIND # Reverse - ctrl+shift+KEY_F = KEY_FORWARD # Forward - KEY_PREVIOUSSONG = KEY_PREVIOUS # Pre-track - KEY_NEXTSONG = KEY_NEXT # Next track - KEY_STOPCD = KEY_STOP # Stop - ctrl+KEY_R = KEY_RECORD # Record - KEY_BACKSPACE = KEY_BACK # Back - BTN_RIGHT = KEY_INFO # Information (also used for Mouse Right) - KEY_UP = KEY_UP # Direction Up - KEY_DOWN = KEY_DOWN # Direction Down - KEY_LEFT = KEY_LEFT # Direction Left - KEY_RIGHT = KEY_RIGHT # Direction Right - KEY_ENTER = KEY_ENTER # Direction OK (also used for Enter) - BTN_MOUSE = BTN_LEFT # Mouse Left -#BTN_RIGHT = KEY_INFO # Mouse Right (also used for Information) - KEY_VOLUMEUP = KEY_VOLUMEUP # Volume Up - KEY_VOLUMEDOWN = KEY_VOLUMEDOWN # Volume Down - KEY_PAGEDOWN = KEY_CHANNELDOWN # Channel Up - KEY_PAGEUP = KEY_CHANNELUP # Channel Down - KEY_MUTE = KEY_MUTE # Mute - alt+meta+KEY_ENTER = KEY_MENU # Start Key - alt+KEY_F4 = KEY_CLOSE # Close - KEY_ESC = KEY_CLEAR # Clear -#KEY_ENTER = KEY_ENTER # Enter (also used for Direction OK) - numlock+KEY_KP0 = KEY_NUMERIC_0 # 0 - numlock+KEY_KP1 = KEY_NUMERIC_1 # 1 - numlock+KEY_KP2 = KEY_NUMERIC_2 # 2 - numlock+KEY_KP3 = KEY_NUMERIC_3 # 3 - numlock+KEY_KP4 = KEY_NUMERIC_4 # 4 - numlock+KEY_KP5 = KEY_NUMERIC_5 # 5 - numlock+KEY_KP6 = KEY_NUMERIC_6 # 6 - numlock+KEY_KP7 = KEY_NUMERIC_7 # 7 - numlock+KEY_KP8 = KEY_NUMERIC_8 # 8 - numlock+KEY_KP9 = KEY_NUMERIC_9 # 9 - KEY_KPASTERISK = KEY_ZOOM # * - numlock+alt+KEY_KP3 = KEY_TEXT # # - numlock+alt+KEY_KP5 = NULL # Sent as part #, and we ignore it - -#The USB interface advertises these events but none of the remote control's -#buttons appear to generate them. Therefore, they are set to NULL so that -#eventlircd does not advertise them as part of its mouse/joystick device. - BTN_MIDDLE = NULL - BTN_SIDE = NULL - BTN_EXTRA = NULL - REL_WHEEL = NULL diff -Nru eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/03_0766_0204.evmap.svn-base eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/03_0766_0204.evmap.svn-base --- eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/03_0766_0204.evmap.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/03_0766_0204.evmap.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - KEY_1 = KEY_NUMERIC_1 # 1 - KEY_2 = KEY_NUMERIC_2 # 2 - KEY_3 = KEY_NUMERIC_3 # 3 - KEY_4 = KEY_NUMERIC_4 # 4 - KEY_5 = KEY_NUMERIC_5 # 5 - KEY_6 = KEY_NUMERIC_6 # 6 - KEY_7 = KEY_NUMERIC_7 # 7 - KEY_8 = KEY_NUMERIC_8 # 8 - KEY_9 = KEY_NUMERIC_9 # 9 - KEY_0 = KEY_NUMERIC_0 # 0 - KEY_UP = KEY_UP # Up Arrow - KEY_DOWN = KEY_DOWN # Down Arrow - KEY_LEFT = KEY_LEFT # Left Arrow - KEY_RIGHT = KEY_RIGHT # Right Arrow - KEY_ENTER = KEY_ENTER # Enter & Ok - KEY_DELETE = KEY_CLEAR # Clear - KEY_HOME = KEY_HOME # Home - KEY_SLEEP = KEY_POWER # Power - KEY_DVD = KEY_DVD # DVD/VCD - KEY_MP3 = KEY_MP3 # Music - KEY_MEDIA = KEY_MEDIA # Pictures - KEY_VIDEO = KEY_VIDEO # Videos - KEY_TV = KEY_TV # Live TV - KEY_RECORD = KEY_RECORD # Record - KEY_RADIO = KEY_RADIO # Radio - KEY_AUDIO = KEY_AUDIO # SAP - KEY_TEXT = KEY_TEXT # Teletext/CC - KEY_LAST = KEY_LAST # Last CH - KEY_SUBTITLE = KEY_SUBTITLE # Subtitle - KEY_LANGUAGE = KEY_LANGUAGE # Language - KEY_ANGLE = KEY_ANGLE # Angle - KEY_BACK = KEY_BACK # BACK - KEY_PROPS = KEY_INFO # Info/EPG - KEY_MENU = KEY_MENU # DVD Menu - KEY_VOLUMEDOWN = KEY_VOLUMEDOWN # Vol - - KEY_VOLUMEUP = KEY_VOLUMEUP # Vol + - KEY_MUTE = KEY_MUTE # Mute - KEY_CHANNELUP = KEY_CHANNELUP # CH/PG up - KEY_CHANNELDOWN = KEY_CHANNELDOWN # CH/PG down - KEY_PLAY = KEY_PLAY # Play - KEY_REWIND = KEY_REWIND # Rev - KEY_PAUSE = KEY_PAUSE # Pause - KEY_FASTFORWARD = KEY_FASTFORWARD # Fwd - KEY_PREVIOUSSONG = KEY_PREVIOUS # Prev - KEY_STOPCD = KEY_STOP # Stop - KEY_NEXTSONG = KEY_NEXT # Next diff -Nru eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/03_1241_e000.evmap.svn-base eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/03_1241_e000.evmap.svn-base --- eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/03_1241_e000.evmap.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/03_1241_e000.evmap.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -KEY_UP = KEY_UP -KEY_DOWN = KEY_DOWN -KEY_LEFT = KEY_LEFT -KEY_RIGHT = KEY_RIGHT -KEY_ENTER = KEY_ENTER -KEY_PAGEDOWN = KEY_PAGEDOWN -KEY_PAGEUP = KEY_PAGEUP -alt+meta+KEY_ENTER = KEY_MENU -KEY_BACKSPACE = KEY_BACK -KEY_1 = KEY_NUMERIC_1 -KEY_2 = KEY_NUMERIC_2 -KEY_3 = KEY_NUMERIC_3 -KEY_4 = KEY_NUMERIC_4 -KEY_5 = KEY_NUMERIC_5 -KEY_6 = KEY_NUMERIC_6 -KEY_7 = KEY_NUMERIC_7 -KEY_8 = KEY_NUMERIC_8 -KEY_9 = KEY_NUMERIC_9 -KEY_0 = KEY_NUMERIC_0 -KEY_EQUAL = KEY_CHANNELUP -ctrl+KEY_EQUAL = KEY_CHANNELUP -KEY_MINUS = KEY_CHANNELDOWN -ctrl+KEY_MINUS = KEY_CHANNELDOWN -ctrl+shift+KEY_T = KEY_TV -ctrl+KEY_M = KEY_MP3 -ctrl+KEY_E = KEY_VIDEO -ctrl+KEY_I = KEY_MEDIA -ctrl+KEY_G = KEY_PROGRAM -ctrl+KEY_R = KEY_RECORD -ctrl+KEY_D = KEY_MENU -ctrl+shift+KEY_M = KEY_DVD -ctrl+KEY_O = KEY_VCR -ctrl+KEY_A = KEY_RADIO -ctrl+KEY_U = KEY_SUBTITLE -ctrl+KEY_P = KEY_PAUSE -ctrl+shift+KEY_P = KEY_PLAY -ctrl+shift+KEY_S = KEY_STOP -ctrl+KEY_B = KEY_PREVIOUS -ctrl+KEY_F = KEY_NEXT -ctrl+shift+KEY_B = KEY_REWIND -ctrl+shift+KEY_F = KEY_FORWARD -KEY_F8 = KEY_MUTE -KEY_F9 = KEY_VOLUMEDOWN -KEY_F10 = KEY_VOLUMEUP -ctrl+shift+KEY_C = KEY_TEXT diff -Nru eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/03_147a_e02d.evmap.svn-base eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/03_147a_e02d.evmap.svn-base --- eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/03_147a_e02d.evmap.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/03_147a_e02d.evmap.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ - KEY_1 = KEY_NUMERIC_1 - KEY_2 = KEY_NUMERIC_2 - KEY_3 = KEY_NUMERIC_3 - KEY_4 = KEY_NUMERIC_4 - KEY_5 = KEY_NUMERIC_5 - KEY_6 = KEY_NUMERIC_6 - KEY_7 = KEY_NUMERIC_7 - KEY_8 = KEY_NUMERIC_8 - KEY_9 = KEY_NUMERIC_9 - KEY_0 = KEY_NUMERIC_0 - KEY_M = KEY_MUTE - KEY_R = KEY_VOLUMEDOWN # -/-- key - KEY_S = KEY_VOLUMEUP # A/B key - KEY_F5 = KEY_RECORD # KEY_RED - KEY_F6 = KEY_PREVIOUS # KEY_GREEN - KEY_F7 = KEY_NEXT # KEY_YELLOW - KEY_F8 = KEY_BLUE - KEY_ENTER = KEY_ENTER - KEY_UP = KEY_UP - KEY_DOWN = KEY_DOWN - KEY_LEFT = KEY_LEFT - KEY_RIGHT = KEY_RIGHT - KEY_E = KEY_PROGRAM - KEY_F = KEY_EXIT - KEY_I = KEY_INFO - KEY_F9 = KEY_TV - KEY_F2 = KEY_MENU - KEY_T = KEY_TEXT - KEY_P = KEY_PAUSE - KEY_V = KEY_ZOOM # EXT diff -Nru eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/bdremoteng.evmap.svn-base eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/bdremoteng.evmap.svn-base --- eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/bdremoteng.evmap.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/bdremoteng.evmap.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -BTN_A = KEY_F1 -BTN_B = KEY_F2 -BTN_C = KEY_F3 -BTN_X = KEY_F4 -BNT_Y = KEY_F5 -BTN_Z = KEY_F6 -BTN_START = KEY_ENTER -KEY_0 = KEY_NUMERIC_0 -KEY_1 = KEY_NUMERIC_1 -KEY_2 = KEY_NUMERIC_2 -KEY_3 = KEY_NUMERIC_3 -KEY_4 = KEY_NUMERIC_4 -KEY_5 = KEY_NUMERIC_5 -KEY_6 = KEY_NUMERIC_6 -KEY_7 = KEY_NUMERIC_7 -KEY_8 = KEY_NUMERIC_8 -KEY_9 = KEY_NUMERIC_9 diff -Nru eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/default.evmap.svn-base eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/default.evmap.svn-base --- eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/default.evmap.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/default.evmap.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ -KEY_BACKSPACE = KEY_BACK -KEY_1 = KEY_NUMERIC_1 -KEY_2 = KEY_NUMERIC_2 -KEY_3 = KEY_NUMERIC_3 -KEY_4 = KEY_NUMERIC_4 -KEY_5 = KEY_NUMERIC_5 -KEY_6 = KEY_NUMERIC_6 -KEY_7 = KEY_NUMERIC_7 -KEY_8 = KEY_NUMERIC_8 -KEY_9 = KEY_NUMERIC_9 -KEY_0 = KEY_NUMERIC_0 -KEY_KP1 = KEY_NUMERIC_1 -KEY_KP2 = KEY_NUMERIC_2 -KEY_KP3 = KEY_NUMERIC_3 -KEY_KP4 = KEY_NUMERIC_4 -KEY_KP5 = KEY_NUMERIC_5 -KEY_KP6 = KEY_NUMERIC_6 -KEY_KP7 = KEY_NUMERIC_7 -KEY_KP8 = KEY_NUMERIC_8 -KEY_KP9 = KEY_NUMERIC_9 -KEY_KP0 = KEY_NUMERIC_0 -KEY_KPASTERISK = KEY_NUMERIC_STAR diff -Nru eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/ircore.evmap.svn-base eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/ircore.evmap.svn-base --- eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/ircore.evmap.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/ircore.evmap.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -KEY_1 = KEY_NUMERIC_1 -KEY_2 = KEY_NUMERIC_2 -KEY_3 = KEY_NUMERIC_3 -KEY_4 = KEY_NUMERIC_4 -KEY_5 = KEY_NUMERIC_5 -KEY_6 = KEY_NUMERIC_6 -KEY_7 = KEY_NUMERIC_7 -KEY_8 = KEY_NUMERIC_8 -KEY_9 = KEY_NUMERIC_9 -KEY_0 = KEY_NUMERIC_0 -KEY_KP1 = KEY_NUMERIC_1 -KEY_KP2 = KEY_NUMERIC_2 -KEY_KP3 = KEY_NUMERIC_3 -KEY_KP4 = KEY_NUMERIC_4 -KEY_KP5 = KEY_NUMERIC_5 -KEY_KP6 = KEY_NUMERIC_6 -KEY_KP7 = KEY_NUMERIC_7 -KEY_KP8 = KEY_NUMERIC_8 -KEY_KP9 = KEY_NUMERIC_9 -KEY_KP0 = KEY_NUMERIC_0 -KEY_KPASTERISK = KEY_NUMERIC_STAR - -KEY_E = KEY_EXIT -KEY_BACK = KEY_EXIT -KEY_STOPCD = KEY_STOP -KEY_NEXTSONG = KEY_NEXT -KEY_PREVIOUSSONG = KEY_PREVIOUS -KEY_PROPS = KEY_INFO -KEY_ANGLE = KEY_ZOOM -KEY_MP3 = KEY_AUDIO -KEY_TEXT = KEY_EPG diff -Nru eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/Makefile.am.svn-base eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/Makefile.am.svn-base --- eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/Makefile.am.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/Makefile.am.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -evmapdir = $(EVMAP_DIR) - -dist_evmap_DATA = \ - 03_0419_0001.evmap \ - 03_05a4_9881.evmap \ - 03_0766_0204.evmap \ - 03_1241_e000.evmap \ - 03_147a_e02d.evmap \ - bdremoteng.evmap \ - default.evmap \ - ircore.evmap \ - lircd.evmap \ - mcekbd.evmap diff -Nru eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/mcekbd.evmap.svn-base eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/mcekbd.evmap.svn-base --- eventlircd-0.0.1+svn20110129.2130/etc/.svn/text-base/mcekbd.evmap.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/etc/.svn/text-base/mcekbd.evmap.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -KEY_UP = KEY_UP -KEY_DOWN = KEY_DOWN -KEY_LEFT = KEY_LEFT -KEY_RIGHT = KEY_RIGHT -KEY_ENTER = KEY_ENTER -KEY_PAGEDOWN = KEY_PAGEDOWN -KEY_PAGEUP = KEY_PAGEUP -alt+meta+KEY_ENTER = KEY_MENU -KEY_BACKSPACE = KEY_BACK -KEY_1 = KEY_NUMERIC_1 -KEY_2 = KEY_NUMERIC_2 -KEY_3 = KEY_NUMERIC_3 -KEY_4 = KEY_NUMERIC_4 -KEY_5 = KEY_NUMERIC_5 -KEY_6 = KEY_NUMERIC_6 -KEY_7 = KEY_NUMERIC_7 -KEY_8 = KEY_NUMERIC_8 -KEY_9 = KEY_NUMERIC_9 -KEY_0 = KEY_NUMERIC_0 -KEY_EQUAL = KEY_CHANNELUP -ctrl+KEY_EQUAL = KEY_CHANNELUP -KEY_MINUS = KEY_CHANNELDOWN -ctrl+KEY_MINUS = KEY_CHANNELDOWN -ctrl+shift+KEY_T = KEY_TV -ctrl+KEY_M = KEY_MP3 -ctrl+KEY_E = KEY_VIDEO -ctrl+KEY_I = KEY_MEDIA -ctrl+KEY_G = KEY_PROGRAM -ctrl+KEY_R = KEY_RECORD -ctrl+KEY_D = KEY_MENU -ctrl+shift+KEY_M = KEY_DVD -ctrl+KEY_O = KEY_VCR -ctrl+KEY_A = KEY_RADIO -ctrl+KEY_U = KEY_SUBTITLE -ctrl+KEY_P = KEY_PAUSE -ctrl+shift+KEY_P = KEY_PLAY -ctrl+shift+KEY_S = KEY_STOP -ctrl+KEY_B = KEY_PREVIOUS -ctrl+KEY_F = KEY_NEXT -ctrl+shift+KEY_B = KEY_REWIND -ctrl+shift+KEY_F = KEY_FORWARD -KEY_F8 = KEY_MUTE -KEY_F9 = KEY_VOLUMEDOWN -KEY_F10 = KEY_VOLUMEUP -ctrl+shift+KEY_C = KEY_TEXT diff -Nru eventlircd-0.0.1+svn20110129.2130/m4/.svn/all-wcprops eventlircd-0.0.1+svn20110409.0930/m4/.svn/all-wcprops --- eventlircd-0.0.1+svn20110129.2130/m4/.svn/all-wcprops 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/m4/.svn/all-wcprops 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 25 -/svn/!svn/ver/23/trunk/m4 -END -ax_c_check_flag.m4 -K 25 -svn:wc:ra_dav:version-url -V 44 -/svn/!svn/ver/23/trunk/m4/ax_c_check_flag.m4 -END -pkg.m4 -K 25 -svn:wc:ra_dav:version-url -V 32 -/svn/!svn/ver/18/trunk/m4/pkg.m4 -END -ax_ld_check_flag.m4 -K 25 -svn:wc:ra_dav:version-url -V 45 -/svn/!svn/ver/18/trunk/m4/ax_ld_check_flag.m4 -END -ax_absolute_header.m4 -K 25 -svn:wc:ra_dav:version-url -V 47 -/svn/!svn/ver/18/trunk/m4/ax_absolute_header.m4 -END diff -Nru eventlircd-0.0.1+svn20110129.2130/m4/.svn/entries eventlircd-0.0.1+svn20110409.0930/m4/.svn/entries --- eventlircd-0.0.1+svn20110129.2130/m4/.svn/entries 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/m4/.svn/entries 1970-01-01 00:00:00.000000000 +0000 @@ -1,164 +0,0 @@ -10 - -dir -41 -http://eventlircd.googlecode.com/svn/trunk/m4 -http://eventlircd.googlecode.com/svn - - - -2010-10-02T18:07:42.471302Z -23 -pebender - - - - - - - - - - - - - - -bd17559c-f4b9-11de-82c3-25da7dca7fdf - -ax_c_check_flag.m4 -file - - - - -2011-01-29T16:45:12.244904Z -385ac991ba90d528effc70954efaab6d -2010-10-02T18:07:42.471302Z -23 -pebender - - - - - - - - - - - - - - - - - - - - - -2966 - -pkg.m4 -file - - - - -2011-01-29T16:45:12.244904Z -4b17fbaf9bdeb099fc19edc51ba9a68e -2010-10-01T21:09:46.529671Z -18 -pebender - - - - - - - - - - - - - - - - - - - - - -5806 - -ax_ld_check_flag.m4 -file - - - - -2011-01-29T16:45:12.244904Z -99099f3bb844371be2c45aff31f76a0c -2010-10-01T21:09:46.529671Z -18 -pebender - - - - - - - - - - - - - - - - - - - - - -3084 - -ax_absolute_header.m4 -file - - - - -2011-01-29T16:45:12.244904Z -3dec2fd76e5c10e81d83e2b05ebc87a6 -2010-10-01T21:09:46.529671Z -18 -pebender - - - - - - - - - - - - - - - - - - - - - -2980 - diff -Nru eventlircd-0.0.1+svn20110129.2130/m4/.svn/text-base/ax_absolute_header.m4.svn-base eventlircd-0.0.1+svn20110409.0930/m4/.svn/text-base/ax_absolute_header.m4.svn-base --- eventlircd-0.0.1+svn20110129.2130/m4/.svn/text-base/ax_absolute_header.m4.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/m4/.svn/text-base/ax_absolute_header.m4.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_absolute_header.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_ABSOLUTE_HEADER(HEADER1 HEADER2 ...) -# -# DESCRIPTION -# -# Find the absolute name of a header file, assuming the header exists. If -# the header were sys/inttypes.h, this macro would define -# ABSOLUTE_SYS_INTTYPES_H to the `""' quoted absolute name of -# sys/inttypes.h in config.h (e.g. `#define ABSOLUTE_SYS_INTTYPES_H -# "///usr/include/sys/inttypes.h"'). The three "///" are to pacify Sun C -# 5.8, which otherwise would say "warning: #include of /usr/include/... -# may be non-portable". Use `""', not `<>', so that the /// cannot be -# confused with a C99 comment. -# -# LICENSE -# -# Copyright (c) 2009 Derek Price -# Copyright (c) 2009 Rhys Ulerich -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 6 - -dnl Copyright (C) 2006, 2007 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Derek Price. -dnl Modified by Rhys Ulerich to use AC_CHECK_HEADERS instead of _ONCE - -AU_ALIAS([GL_TRILINOS_ABSOLUTE_HEADER], [AX_ABSOLUTE_HEADER]) -AC_DEFUN([AX_ABSOLUTE_HEADER], -[AC_LANG_PREPROC_REQUIRE()dnl -AC_FOREACH([gl_HEADER_NAME], [$1], - [AS_VAR_PUSHDEF([gl_absolute_header], - [gl_cv_absolute_]m4_quote(m4_defn([gl_HEADER_NAME])))dnl - AC_CACHE_CHECK([absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>], - m4_quote(m4_defn([gl_absolute_header])), - [AS_VAR_PUSHDEF([ac_header_exists], - [ac_cv_header_]m4_quote(m4_defn([gl_HEADER_NAME])))dnl - AC_CHECK_HEADERS(m4_quote(m4_defn([gl_HEADER_NAME])))dnl - if test AS_VAR_GET(ac_header_exists) = yes; then - AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]])]) -dnl eval is necessary to expand ac_cpp. -dnl Ultrix and Pyramid sh refuse to redirect output of eval, so use subshell. - AS_VAR_SET(gl_absolute_header, -[`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | -sed -n '\#/]m4_quote(m4_defn([gl_HEADER_NAME]))[#{ - s#.*"\(.*/]m4_quote(m4_defn([gl_HEADER_NAME]))[\)".*#\1# - s#^/[^/]#//&# - p - q -}'`]) - fi - AS_VAR_POPDEF([ac_header_exists])dnl - ])dnl - AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_quote(m4_defn([gl_HEADER_NAME]))), - ["AS_VAR_GET(gl_absolute_header)"], - [Define this to an absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>.]) - AS_VAR_POPDEF([gl_absolute_header])dnl -])dnl -])# AX_ABSOLUTE_HEADER diff -Nru eventlircd-0.0.1+svn20110129.2130/m4/.svn/text-base/ax_c_check_flag.m4.svn-base eventlircd-0.0.1+svn20110409.0930/m4/.svn/text-base/ax_c_check_flag.m4.svn-base --- eventlircd-0.0.1+svn20110129.2130/m4/.svn/text-base/ax_c_check_flag.m4.svn-base 2011-01-29 16:45:11.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/m4/.svn/text-base/ax_c_check_flag.m4.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_c_check_flag.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_C_CHECK_FLAG(FLAG-TO-CHECK,[PROLOGUE],[BODY],[ACTION-IF-SUCCESS],[ACTION-IF-FAILURE]) -# -# DESCRIPTION -# -# This macro tests if the C compiler supports the flag FLAG-TO-CHECK. If -# successfull execute ACTION-IF-SUCCESS otherwise ACTION-IF-FAILURE. -# PROLOGUE and BODY are optional and should be used as in AC_LANG_PROGRAM -# macro. -# -# This code is inspired from KDE_CHECK_COMPILER_FLAG macro. Thanks to -# Bogdan Drozdowski for testing and bug fixes. -# -# LICENSE -# -# Copyright (c) 2008 Francesco Salvestrini -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -# Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program. If not, see . -# -# As a special exception, the respective Autoconf Macro's copyright owner -# gives unlimited permission to copy, distribute and modify the configure -# scripts that are the output of Autoconf when processing the Macro. You -# need not follow the terms of the GNU General Public License when using -# or distributing such scripts, even though portions of the text of the -# Macro appear in them. The GNU General Public License (GPL) does govern -# all other use of the material that constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the Autoconf -# Macro released by the Autoconf Archive. When you make and distribute a -# modified version of the Autoconf Macro, you may extend this special -# exception to the GPL to apply to your modified version as well. - -#serial 6 - -AC_DEFUN([AX_C_CHECK_FLAG],[ - AC_PREREQ([2.61]) - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_PROG_SED]) - - flag=`echo "$1" | $SED 'y% .=/+-(){}<>:*,%_______________%'` - - AC_CACHE_CHECK([whether the C compiler accepts the $1 flag], - [ax_cv_c_check_flag_$flag],[ - - AC_LANG_PUSH([C]) - - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $1" - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([$2],[$3]) - ],[ - eval "ax_cv_c_check_flag_$flag=yes" - ],[ - eval "ax_cv_c_check_flag_$flag=no" - ]) - - CFLAGS="$save_CFLAGS" - - AC_LANG_POP - - ]) - - AS_IF([eval "test \"`echo '$ax_cv_c_check_flag_'$flag`\" = yes"],[ - : - $4 - ],[ - : - $5 - ]) -]) diff -Nru eventlircd-0.0.1+svn20110129.2130/m4/.svn/text-base/ax_ld_check_flag.m4.svn-base eventlircd-0.0.1+svn20110409.0930/m4/.svn/text-base/ax_ld_check_flag.m4.svn-base --- eventlircd-0.0.1+svn20110129.2130/m4/.svn/text-base/ax_ld_check_flag.m4.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/m4/.svn/text-base/ax_ld_check_flag.m4.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_ld_check_flag.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_LD_CHECK_FLAG(FLAG-TO-CHECK,[PROLOGUE],[BODY],[ACTION-IF-SUCCESS],[ACTION-IF-FAILURE]) -# -# DESCRIPTION -# -# This macro tests if the C++ compiler supports the flag FLAG-TO-CHECK. If -# successfull execute ACTION-IF-SUCCESS otherwise ACTION-IF-FAILURE. -# PROLOGUE and BODY are optional and should be used as in AC_LANG_PROGRAM -# macro. -# -# Example: -# -# AX_LD_CHECK_FLAG([-Wl,-L/usr/lib],[],[],[ -# ... -# ],[ -# ... -# ]) -# -# This code is inspired from KDE_CHECK_COMPILER_FLAG macro. Thanks to -# Bogdan Drozdowski for testing and bug fixes. -# -# LICENSE -# -# Copyright (c) 2008 Francesco Salvestrini -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -# Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program. If not, see . -# -# As a special exception, the respective Autoconf Macro's copyright owner -# gives unlimited permission to copy, distribute and modify the configure -# scripts that are the output of Autoconf when processing the Macro. You -# need not follow the terms of the GNU General Public License when using -# or distributing such scripts, even though portions of the text of the -# Macro appear in them. The GNU General Public License (GPL) does govern -# all other use of the material that constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the Autoconf -# Macro released by the Autoconf Archive. When you make and distribute a -# modified version of the Autoconf Macro, you may extend this special -# exception to the GPL to apply to your modified version as well. - -#serial 6 - -AC_DEFUN([AX_LD_CHECK_FLAG],[ - AC_PREREQ([2.61]) - AC_REQUIRE([AC_PROG_CXX]) - AC_REQUIRE([AC_PROG_SED]) - - flag=`echo "$1" | $SED 'y% .=/+-(){}<>:*,%_______________%'` - - AC_CACHE_CHECK([whether the linker accepts the $1 flag], - [ax_cv_ld_check_flag_$flag],[ - - #AC_LANG_PUSH([C]) - - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $1" - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([$2],[$3]) - ],[ - eval "ax_cv_ld_check_flag_$flag=yes" - ],[ - eval "ax_cv_ld_check_flag_$flag=no" - ]) - - LDFLAGS="$save_LDFLAGS" - - #AC_LANG_POP - - ]) - - AS_IF([eval "test \"`echo '$ax_cv_ld_check_flag_'$flag`\" = yes"],[ - : - $4 - ],[ - : - $5 - ]) -]) diff -Nru eventlircd-0.0.1+svn20110129.2130/m4/.svn/text-base/pkg.m4.svn-base eventlircd-0.0.1+svn20110409.0930/m4/.svn/text-base/pkg.m4.svn-base --- eventlircd-0.0.1+svn20110129.2130/m4/.svn/text-base/pkg.m4.svn-base 2011-01-29 16:45:11.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/m4/.svn/text-base/pkg.m4.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,165 +0,0 @@ -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 1 (pkg-config-0.24) -# -# Copyright © 2004 Scott James Remnant . -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- -AC_DEFUN([PKG_PROG_PKG_CONFIG], -[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG$]) -m4_pattern_allow([^PKG_CONFIG_ALLOW_SYSTEM_CFLAGS$]) -m4_pattern_allow([^PKG_CONFIG_ALLOW_SYSTEM_LIBS$]) -m4_pattern_allow([^PKG_CONFIG_DEBUG_SPEW$]) -m4_pattern_allow([^PKG_CONFIG_DISABLE_UNINSTALLED$]) -m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) -m4_pattern_allow([^PKG_CONFIG_PATH$]) -m4_pattern_allow([^PKG_CONFIG_SYSROOT_DIR$]) -m4_pattern_allow([^PKG_CONFIG_TOP_BUILD_DIR$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) -AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) -AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi -fi[]dnl -])# PKG_PROG_PKG_CONFIG - -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -# only at the first occurence in configure.ac, so if the first place -# it's called might be skipped (such as if it is within an "if", you -# have to call PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_EXISTS], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_default([$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) - -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- -m4_define([_PKG_CONFIG], -[if test -n "$$1"; then - pkg_cv_[]$1="$$1" - elif test -n "$PKG_CONFIG"; then - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], - [pkg_failed=yes]) - else - pkg_failed=untried -fi[]dnl -])# _PKG_CONFIG - -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- -AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED - - -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_MODULES], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - -pkg_failed=no -AC_MSG_CHECKING([for $1]) - -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) - -if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - - m4_default([$4], [AC_MSG_ERROR( -[Package requirements ($2) were not met: - -$$1_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -_PKG_TEXT])[]dnl - ]) -elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( -[The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -_PKG_TEXT - -To get pkg-config, see .])dnl - ]) -else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - $3 -fi[]dnl -])# PKG_CHECK_MODULES diff -Nru eventlircd-0.0.1+svn20110129.2130/man/.svn/all-wcprops eventlircd-0.0.1+svn20110409.0930/man/.svn/all-wcprops --- eventlircd-0.0.1+svn20110129.2130/man/.svn/all-wcprops 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/man/.svn/all-wcprops 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 26 -/svn/!svn/ver/41/trunk/man -END -Makefile.am -K 25 -svn:wc:ra_dav:version-url -V 37 -/svn/!svn/ver/7/trunk/man/Makefile.am -END -eventlircd.8.in -K 25 -svn:wc:ra_dav:version-url -V 42 -/svn/!svn/ver/41/trunk/man/eventlircd.8.in -END -eventlircd.evmap.5.in -K 25 -svn:wc:ra_dav:version-url -V 47 -/svn/!svn/ver/8/trunk/man/eventlircd.evmap.5.in -END diff -Nru eventlircd-0.0.1+svn20110129.2130/man/.svn/entries eventlircd-0.0.1+svn20110409.0930/man/.svn/entries --- eventlircd-0.0.1+svn20110129.2130/man/.svn/entries 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/man/.svn/entries 1970-01-01 00:00:00.000000000 +0000 @@ -1,130 +0,0 @@ -10 - -dir -41 -http://eventlircd.googlecode.com/svn/trunk/man -http://eventlircd.googlecode.com/svn - - - -2010-12-31T19:36:00.225512Z -41 -pebender - - - - - - - - - - - - - - -bd17559c-f4b9-11de-82c3-25da7dca7fdf - -Makefile.am -file - - - - -2011-01-29T16:45:12.496997Z -a5b4a32fe0a938f0ef1e3605d9e372c6 -2010-01-10T01:44:06.317455Z -7 -pebender - - - - - - - - - - - - - - - - - - - - - -56 - -eventlircd.8.in -file - - - - -2011-01-29T16:45:12.496997Z -6f6c450a75b722d421c749dee5554ac7 -2010-12-31T19:36:00.225512Z -41 -pebender - - - - - - - - - - - - - - - - - - - - - -5851 - -eventlircd.evmap.5.in -file - - - - -2011-01-29T16:45:12.496997Z -e566dcd0575e2c85b640661ece23c1e1 -2010-02-06T17:49:24.329457Z -8 -pebender - - - - - - - - - - - - - - - - - - - - - -7563 - diff -Nru eventlircd-0.0.1+svn20110129.2130/man/.svn/text-base/eventlircd.8.in.svn-base eventlircd-0.0.1+svn20110409.0930/man/.svn/text-base/eventlircd.8.in.svn-base --- eventlircd-0.0.1+svn20110129.2130/man/.svn/text-base/eventlircd.8.in.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/man/.svn/text-base/eventlircd.8.in.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,151 +0,0 @@ -.\" Copyright (C) 2009-2010 Paul Bender. -.\" -.\" This file is part of eventlircd. -.\" -.\" eventlircd is free software: you can redistribute it and/or modify -.\" it under the terms of the GNU General Public License as published by -.\" the Free Software Foundation, either version 2 of the License, or -.\" (at your option) any later version. -.\" -.\" eventlircd is distributed in the hope that it will be useful, -.\" but WITHOUT ANY WARRANTY; without even the implied warranty of -.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -.\" GNU General Public License for more details. -.\" -.\" You should have received a copy of the GNU General Public License -.\" along with eventlircd. If not, see . -.\" -.TH eventlircd 8 "DECEMBER 31, 2010" -.SH NAME -eventlircd \- an LIRC daemon with integrated udev support. -.SH SYNOPSIS -.LP -.B eventlircd -.IR [ OPTION ] -.SH AVAILABILITY -Any GNU/Linux system with udev (at least version 136) and uinput (at least driver version 0.3) support. -.SH DESCRIPTION -.LP -\fBeventlircd\fR is an LIRC daemon for input devices that -supports multiple input devices at the same time, -discovers the input devices to be handled using udev, -maps keyboard shortcuts to single keys (e.g. ctrl+shift+KEY_B to KEY_REWIND), and -passes through mouse/joystick events. -.LP -A keyboard shortcut consists of -zero or more lock keys (capslock, numlock and scrolllock) -zero or more modifier keys (ctrl, shift, alt and meta) and -one base key (non-lock and non-modifier key). -.SH OPTIONS -.TP -\fB\-h\fR \fB\-\-help\fR -Print the help message and exit. -.TP -\fB\-V\fR \fB\-\-version\fR -Display the program version and exit. -.TP -\fB\-v\fR \fB\-\-verbose\fR -Increase the output message verbosity. -This option can appear up to three times. -The more often it appears, the more verbose the message output. -.TP -\fB\-f\fR \fB\-\-foreground\fR -Run \fBeventlircd\fR in the foreground rather than in the background. -.TP -\fB\-k\fR \fB\-\-map=dir\fR -Look for device map files in directory \fBdirectory\fR rather than directory @EVMAP_DIR@. -.TP -\fB\-s\fR \fB\-\-socket=socket\fR -Create the lircd socket \fBsocket\fR rather than lircd socket @LIRCD_SOCKET@. -.TP -\fB\-m\fR \fB\-\-mode=mode\fR -Create the lircd socket with mode \fBmode\fR rather than with mode 0666. -.TP -\fB\-R\fR \fB\-\-repeat-filter\fR -Filter input event repeats. -.IP -Because \fBeventlircd\fR can receive input from different input sources with different methods for limiting repeats, -the input event repeat rate may differ between inputs. -Therefore, in order to normalize the output repeat rate, -\fBeventlircd\fR uses time rather than count to filter the input event repeats. -.IP -Because users often want to use repeats to scroll both short and long on-screen lists, -the filtered repeat rate start slow and increases. -.IP -The time based repeat filtering provided by \fBeventlircd\fR replaces -the count based repeat filtering configured in the \fB.lircrc\fR file. -Therefore, -if you enable \fBeventlircd\fR's time based repeat filtering, -then you should disable \fB.lircrc\fR's count based repeat filtering. -That is, in the \fB.lircrc\fR file, -the value of \fBdelay\fR should be '0' -and the value of \fBrepeat\fR should be either '0' (ignore repeats) or '1' (allow repeats). -.TP -\fB\-r\fR \fB\-\-release=suffix\fR -Generate key release events with \fBsuffix\fR appended to the key name. -.SH UDEV DEVICE PROPERTIES -.LP -Udev communicates with eventlircd using udev device properties. -The following are the eventlircd specific udev device properties that can be set using ENV{} in udev rules. -.TP -\fBeventlircd_enable\fR -Used to ask \fBeventlircd\fR to handle the device. -If the value is "true", then \fBeventlircd\fR will attempt to handle the device. -.TP -\fBeventlircd_evmap\fR -Used to tell \fBeventlircd\fR the name of the map file to be used with this device. -If it is not set, then \fBeventlircd\fR will not perform any key mapping. -\fBeventlircd\fR assumes that the map file is located in the map directory. -.TP -\fBeventlircd_remote\fR -Used to tell \fBeventlircd\fR the remote control name to use in the output \fBeventlircd\fR sends to the lircd socket. -If it is not set, then \fBeventlircd\fR will use "devinput" for the remote control name. -.SH FILES -.I @EVMAP_DIR@/*.evmap -.RS -The per-device key map files. -See \fBeventlircd.evmap (5)\fR for further details. -.RE -.I @includedir@/linux/input.h -.RS -The Linux input event device header file in which the key and button codes associated with the key event type are define. -.RE -.I @UDEV_DIR@/rules.d/98-eventlircd.rules.disabled -.RS -An example udev rules file for eventlircd. -.RE -.I @UDEV_DIR@/rules.d/98-lircd.rules.disabled -.RS -An example udev rules file for using lircd in conjuction with eventlircd. -.SH ENVIRONMENT -.SH DIAGNOSTICS -.SH BUGS -.SH CAVEATS -.LP -\fBeventlircd\fR -consumes all keys that it associates with -either a lock or modifier key token. -Therefore, when a key associated with -either a lock or modifier key token is received, -it is not forwarded to either the lircd socket or the mouse/joystick output device. -.LP -When a key press event is mapped to a value, -any intermediate key repeat events and the final key release event associated with the key press event -are mapped to the same value. -.LP -\fBeventlircd\fR -supports a subset of the Linux input event types and event codes, -and silently discards the event types and codes that it does not support. -It supports -It has complete support for -synchronization events (EV_SYN), -key/button events (EV_KEY), -relative axes events (EV_REL), -absolute axes events (EV_ABS) -It has partial support for LED events (EV_LED), -supporting the codes for capslock (LED_CAPSL), numlock (LED_NUML) and scrolllock (LED_SCROLLL). -All other Linux input event types and event codes are not supported. -.SH AUTHOR -Paul Bender -.SH "SEE ALSO" -.BR eventlircd.evmap (5) diff -Nru eventlircd-0.0.1+svn20110129.2130/man/.svn/text-base/eventlircd.evmap.5.in.svn-base eventlircd-0.0.1+svn20110409.0930/man/.svn/text-base/eventlircd.evmap.5.in.svn-base --- eventlircd-0.0.1+svn20110129.2130/man/.svn/text-base/eventlircd.evmap.5.in.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/man/.svn/text-base/eventlircd.evmap.5.in.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,228 +0,0 @@ -.\" Copyright (C) 2009-2010 Paul Bender. -.\" -.\" This file is part of eventlircd. -.\" -.\" eventlircd is free software: you can redistribute it and/or modify -.\" it under the terms of the GNU General Public License as published by -.\" the Free Software Foundation, either version 2 of the License, or -.\" (at your option) any later version. -.\" -.\" eventlircd is distributed in the hope that it will be useful, -.\" but WITHOUT ANY WARRANTY; without even the implied warranty of -.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -.\" GNU General Public License for more details. -.\" -.\" You should have received a copy of the GNU General Public License -.\" along with eventlircd. If not, see . -.\" -.TH eventlircd evmap 5 "JANUARY 09, 2010" -.SH NAME -@EVMAP_DIR@/*.evmap \- an input device event map file for \fBeventlircd (8)\fR. -.SH INTRODUCTION -\fBeventlircd\fR can map keyboard shortcuts to single key events. -In addition, can map keyboard shortcuts and input events to NULL. -.SH DESCRIPTION -The input device event map file contains case sensitive lines each with one of the three following formats -.LP -[\fBcapslock\fR+][\fBnumlock\fR+][\fBscrolllock\fR+][\fBctrl\fR+][\fBshift\fR+][\fBalt\fR+][\fBmeta\fR+]\fB\fR = \fB\fR -.LP -or -.LP -[\fBcapslock\fR+][\fBnumlock\fR+][\fBscrolllock\fR+][\fBctrl\fR+][\fBshift\fR+][\fBalt\fR+][\fBmeta\fR+]\fB\fR = \fBNULL\fR -.LP -or -.LP -\fB\fR = \fBNULL\fR -.LP -where -.TP -\fBcapslock\fR -The capslock lock key token. -The KEY_CAPSLOCK key name is treated as the capslock lock key token. -.TP -\fBnumlock\fR -The numlock lock key token. -The KEY_NUMLOCK key name is treated as the numlock lock key token. -.TP -\fBscrolllock\fR -The scrolllock lock key token. -The KEY_SCROLLLOCK key name is treated as the scrolllock lock key token. -.TP -\fBctrl\fR -The ctrl modifier key token. -The KEY_LEFTCTRL and KEY_RIGHTCTRL key names are treated as the ctrl modifier key token. -.TP -\fBshift\fR -The shift modifier key token. -The KEY_LEFTSHIFT and KEY_RIGHTSHIFT key names are treated as the shift modifier key token. -.TP -\fBalt\fR -The alt modifier key token. -The KEY_LEFTALT and KEY_RIGHTALT key names are treated as the alt modifier key token. -.TP -\fBmeta\fR -The meta modifier key token. -The KEY_LEFTMETA and KEY_RIGHTMETA key names are treated as the meta modifier key token. -.TP -\fB\fR -The input key event name. -The key event names that correspond to an input key event name are the key event names (KEY_* and BTN_*) defined in @includedir@/linux/input.h other than the key event names that correspond to lock or modifier key tokens. -.TP -\fB\fR -The output key even name. -The key event names that correspond to an output key event name are any key event names (KEY_* and BTN_*) defined in @includedir@/linux/input.h. -.TP -\fB\fR -The input event name. -The event names that correspond to an input event name are the event names defined in @includedir@/linux/input.h other than the key event names that correspond to lock or modifier key tokens. -.TP -\fBNULL\fR -A special value that tells \fBeventlircd\fR to ignore the input keyboard shortcut or event. -.LP -An input device event map file may contain comments, which are ignored by \fBeventlircd\fR. -A comment starts with a # and ends with a new line. -For example, the Adesso ARC-1100 remote control might use an input device event map file with the lines -.LP -.PD 0 -.LP -################################################################################ -.LP -# Adesso ARC-1100 remote control (USB VendorId=05a4 ProductId=9881). -.LP -################################################################################ -.LP - KEY_HOMEPAGE = KEY_WWW # WWW -.LP - KEY_SLEEP = KEY_POWER # Sleep -.LP - ctrl+shift+KEY_T = KEY_VCR # My TV -.LP - ctrl+KEY_M = KEY_MP3 # My Music -.LP - ctrl+KEY_I = KEY_MEDIA # My Pictures -.LP - ctrl+KEY_E = KEY_VIDEO # My Videos -.LP - ctrl+KEY_O = KEY_VCR2 # Record TV -.LP - ctrl+KEY_G = KEY_PROGRAM # Guide -.LP - ctrl+KEY_T = KEY_TV # Live TV -.LP - ctrl+shift+KEY_M = KEY_DVD # DVD Menu -.LP - KEY_PLAYPAUSE = KEY_PLAYPAUSE # Play (also used for Pause) -.LP -#KEY_PLAYPAUSE = KEY_PLAYPAUSE # Pause (also used for Play) -.LP - ctrl+shift+KEY_B = KEY_REWIND # Reverse -.LP - ctrl+shift+KEY_F = KEY_FORWARD # Forward -.LP - KEY_PREVIOUSSONG = KEY_PREVIOUS # Pre-track -.LP - KEY_NEXTSONG = KEY_NEXT # Next track -.LP - KEY_STOPCD = KEY_STOP # Stop -.LP - ctrl+KEY_R = KEY_RECORD # Record -.LP - KEY_BACKSPACE = KEY_BACK # Back -.LP - BTN_RIGHT = KEY_INFO # Information (also used for Mouse Right) -.LP - KEY_UP = KEY_UP # Direction Up -.LP - KEY_DOWN = KEY_DOWN # Direction Down -.LP - KEY_LEFT = KEY_LEFT # Direction Left -.LP - KEY_RIGHT = KEY_RIGHT # Direction Right -.LP - KEY_ENTER = KEY_ENTER # Direction OK (also used for Enter) -.LP - BTN_MOUSE = BTN_LEFT # Mouse Left -.LP -#BTN_RIGHT = KEY_INFO # Mouse Right (also used for Information) -.LP - KEY_VOLUMEUP = KEY_VOLUMEUP # Volume Up -.LP - KEY_VOLUMEDOWN = KEY_VOLUMEDOWN # Volume Down -.LP - KEY_PAGEDOWN = KEY_CHANNELDOWN # Channel Up -.LP - KEY_PAGEUP = KEY_CHANNELUP # Channel Down -.LP - KEY_MUTE = KEY_MUTE # Mute -.LP - alt+meta+KEY_ENTER = KEY_MENU # Start Key -.LP - alt+KEY_F4 = KEY_CLOSE # Close -.LP - KEY_ESC = KEY_CLEAR # Clear -.LP -#KEY_ENTER = KEY_ENTER # Enter (also used for Direction OK) -.LP - numlock+KEY_KP0 = KEY_NUMERIC_0 # 0 -.LP - numlock+KEY_KP1 = KEY_NUMERIC_1 # 1 -.LP - numlock+KEY_KP2 = KEY_NUMERIC_2 # 2 -.LP - numlock+KEY_KP3 = KEY_NUMERIC_3 # 3 -.LP - numlock+KEY_KP4 = KEY_NUMERIC_4 # 4 -.LP - numlock+KEY_KP5 = KEY_NUMERIC_5 # 5 -.LP - numlock+KEY_KP6 = KEY_NUMERIC_6 # 6 -.LP - numlock+KEY_KP7 = KEY_NUMERIC_7 # 7 -.LP - numlock+KEY_KP8 = KEY_NUMERIC_8 # 8 -.LP - numlock+KEY_KP9 = KEY_NUMERIC_9 # 9 -.LP - KEY_KPASTERISK = KEY_ZOOM # * -.LP - numlock+alt+KEY_KP3 = KEY_TEXT # # -.LP - numlock+alt+KEY_KP5 = NULL # Sent as part #, and we ignore it -.LP - -.LP -#The USB interface advertises these events but none of the remote control's -.LP -#buttons appear to generate them. Therefore, they are set to NULL so that -.LP -#eventlircd does not advertise them as part of its mouse/joystick device. -.LP - BTN_MIDDLE = NULL -.LP - BTN_SIDE = NULL -.LP - BTN_EXTRA = NULL -.LP - REL_WHEEL = NULL -.PD -.SH OPTIONS -.SH FILES -.SH ENVIRONMENT -.SH DIAGNOSTICS -.SH BUGS -.SH CAVEATS -.LP -\fBeventlircd\fR associates some key names with lock and modifier key tokens: -KEY_CAPSLOCK is associated with capslock, -KEY_NUMLOCK is associated with numlock, -KEY_SCROLLLOCK is associated with scrolllock, -KEY_LEFTCTRL and KEY_RIGHTCTRL are associated with ctrl, -KEY_LEFTSHIFT and KEY_RIGHTSHIFT are associated with shift, -KEY_LEFTALT and KEY_RIGHTALT are associated with alt, and -KEY_LEFTMETA and KEY_RIGHTMETA are associated with meta. -The key names associated with lock and modifier key tokens, -are not accepted as a base key. -.SH AUTHOR -Paul Bender -.SH "SEE ALSO" -.BR eventlircd (8) diff -Nru eventlircd-0.0.1+svn20110129.2130/man/.svn/text-base/Makefile.am.svn-base eventlircd-0.0.1+svn20110409.0930/man/.svn/text-base/Makefile.am.svn-base --- eventlircd-0.0.1+svn20110129.2130/man/.svn/text-base/Makefile.am.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/man/.svn/text-base/Makefile.am.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -man5_MANS = eventlircd.evmap.5 -man8_MANS = eventlircd.8 diff -Nru eventlircd-0.0.1+svn20110129.2130/src/input.c eventlircd-0.0.1+svn20110409.0930/src/input.c --- eventlircd-0.0.1+svn20110129.2130/src/input.c 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/src/input.c 2011-04-09 07:16:47.000000000 +0000 @@ -1242,7 +1242,7 @@ device->path = NULL; } - return 0; + return return_code; } static int input_device_purge() diff -Nru eventlircd-0.0.1+svn20110129.2130/src/.svn/all-wcprops eventlircd-0.0.1+svn20110409.0930/src/.svn/all-wcprops --- eventlircd-0.0.1+svn20110129.2130/src/.svn/all-wcprops 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/src/.svn/all-wcprops 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 26 -/svn/!svn/ver/41/trunk/src -END -input.c -K 25 -svn:wc:ra_dav:version-url -V 34 -/svn/!svn/ver/41/trunk/src/input.c -END -event_name_to_code.h.sh.in -K 25 -svn:wc:ra_dav:version-url -V 53 -/svn/!svn/ver/38/trunk/src/event_name_to_code.h.sh.in -END -evkey_code_to_name.h.sh.in -K 25 -svn:wc:ra_dav:version-url -V 53 -/svn/!svn/ver/38/trunk/src/evkey_code_to_name.h.sh.in -END -lircd.h -K 25 -svn:wc:ra_dav:version-url -V 34 -/svn/!svn/ver/27/trunk/src/lircd.h -END -input.h -K 25 -svn:wc:ra_dav:version-url -V 34 -/svn/!svn/ver/41/trunk/src/input.h -END -main.c -K 25 -svn:wc:ra_dav:version-url -V 33 -/svn/!svn/ver/41/trunk/src/main.c -END -evkey_type.h.sh.in -K 25 -svn:wc:ra_dav:version-url -V 45 -/svn/!svn/ver/38/trunk/src/evkey_type.h.sh.in -END -monitor.c -K 25 -svn:wc:ra_dav:version-url -V 36 -/svn/!svn/ver/38/trunk/src/monitor.c -END -Makefile.am -K 25 -svn:wc:ra_dav:version-url -V 37 -/svn/!svn/ver/7/trunk/src/Makefile.am -END -monitor.h -K 25 -svn:wc:ra_dav:version-url -V 36 -/svn/!svn/ver/27/trunk/src/monitor.h -END -lircd.c -K 25 -svn:wc:ra_dav:version-url -V 34 -/svn/!svn/ver/38/trunk/src/lircd.c -END diff -Nru eventlircd-0.0.1+svn20110129.2130/src/.svn/entries eventlircd-0.0.1+svn20110409.0930/src/.svn/entries --- eventlircd-0.0.1+svn20110129.2130/src/.svn/entries 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/src/.svn/entries 1970-01-01 00:00:00.000000000 +0000 @@ -1,402 +0,0 @@ -10 - -dir -41 -http://eventlircd.googlecode.com/svn/trunk/src -http://eventlircd.googlecode.com/svn - - - -2010-12-31T19:36:00.225512Z -41 -pebender - - - - - - - - - - - - - - -bd17559c-f4b9-11de-82c3-25da7dca7fdf - -input.c -file - - - - -2011-01-29T16:45:12.453408Z -d6c41410abb1f8c0eccc1a51f2da169b -2010-12-31T19:36:00.225512Z -41 -pebender - - - - - - - - - - - - - - - - - - - - - -65297 - -event_name_to_code.h.sh.in -file - - - - -2011-01-29T16:45:12.453408Z -ec925f824380c6744267a2d70b9bf5a8 -2010-11-03T23:21:09.029570Z -38 -pebender - - - - - - - - - - - - - - - - - - - - - -4984 - -evkey_code_to_name.h.sh.in -file - - - - -2011-01-29T16:45:12.453408Z -fd551d976a3cd1c9d59a75d6822de7c0 -2010-11-03T23:21:09.029570Z -38 -pebender - - - - - - - - - - - - - - - - - - - - - -2518 - -lircd.h -file - - - - -2011-01-29T16:45:12.453408Z -49df59c10989e3821e963fee60e38355 -2010-10-02T19:27:45.794190Z -27 -pebender - - - - - - - - - - - - - - - - - - - - - -1156 - -input.h -file - - - - -2011-01-29T16:45:12.453408Z -01a0c1bdd6869ae122bfb32136109d47 -2010-12-31T19:36:00.225512Z -41 -pebender - - - - - - - - - - - - - - - - - - - - - -881 - -main.c -file - - - - -2011-01-29T16:45:12.453408Z -e25463b900c3b410f436e2934a5a39d3 -2010-12-31T19:36:00.225512Z -41 -pebender - - - - - - - - - - - - - - - - - - - - - -6116 - -evkey_type.h.sh.in -file - - - - -2011-01-29T16:45:12.456910Z -232eb74633f8f4685df809636d4b4572 -2010-11-03T23:21:09.029570Z -38 -pebender - - - - - - - - - - - - - - - - - - - - - -2660 - -monitor.c -file - - - - -2011-01-29T16:45:12.456910Z -f193db569a9cef980bde3fe729bc3faa -2010-11-03T23:21:09.029570Z -38 -pebender - - - - - - - - - - - - - - - - - - - - - -4893 - -Makefile.am -file - - - - -2011-01-29T16:45:12.456910Z -75aa5ff07e1e21b33dec85e9ebe1102b -2010-01-10T01:44:06.317455Z -7 -pebender - - - - - - - - - - - - - - - - - - - - - -700 - -monitor.h -file - - - - -2011-01-29T16:45:12.456910Z -4fbba94fadd5d1268ccb6680f9c06de7 -2010-10-02T19:27:45.794190Z -27 -pebender - - - - - - - - - - - - - - - - - - - - - -964 - -lircd.c -file - - - - -2011-01-29T16:45:12.456910Z -c44d41b002f34a62a97219ec7beba91c -2010-11-03T23:21:09.029570Z -38 -pebender - - - - - - - - - - - - - - - - - - - - - -8003 - diff -Nru eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/event_name_to_code.h.sh.in.svn-base eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/event_name_to_code.h.sh.in.svn-base --- eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/event_name_to_code.h.sh.in.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/event_name_to_code.h.sh.in.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,108 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2009-2010 Paul Bender. -# -# This file is part of eventlircd. -# -# eventlircd is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# eventlircd is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with eventlircd. If not, see . - -# -# This script generates the event_name_to_code.h header file using the installed -# linux/input.h header file. -# - -ABSOLUTE_LINUX_INPUT_H=@ABSOLUTE_LINUX_INPUT_H@ -AWK=@AWK@ - -rm -f event_name_to_code.h - -${AWK} " - BEGIN { - printf(\"#ifndef _EVENTLIRCD_EVENT_NAME_TO_CODE_H_\n\"); - printf(\"#define _EVENTLIRCD_EVENT_NAME_TO_CODE_H_ 1\n\"); - printf(\"#include <${ABSOLUTE_LINUX_INPUT_H}>\n\"); - printf(\"#include \n\"); - printf(\"static const struct {\n\"); - printf(\"\tconst char *name;\n\"); - printf(\"\t__u16 type;\n\"); - printf(\"\t__u16 code;\n\"); - printf(\"} event_name_to_code[] = {\n\"); - }; - /#define SYN_/ { - code_str = \"\\\"\" \$2 \"\\\"\"; - code_num = \$2; - printf(\"\t{ %-25s , EV_SYN , %-23s },\n\", code_str, code_num); - }; - /#define KEY_CNT/ { next; }; - /#define KEY_MAX/ { next; }; - /#define KEY_MIN_INTERESTING/ { next; }; - /#define KEY_RESERVED/ { next; }; - /#define KEY_/ { - code_str = \"\\\"\" \$2 \"\\\"\"; - code_num = \$2; - printf(\"\t{ %-25s , EV_KEY , %-23s },\n\", code_str, code_num); - }; - /#define BTN_/ { - code_str = \"\\\"\" \$2 \"\\\"\"; - code_num = \$2; - printf(\"\t{ %-25s , EV_KEY , %-23s },\n\", code_str, code_num); - }; - /#define REL_CNT/ { next; }; - /#define REL_MAX/ { next; }; - /#define REL_/ { - code_str = \"\\\"\" \$2 \"\\\"\"; - code_num = \$2; - printf(\"\t{ %-25s , EV_REL , %-23s },\n\", code_str, code_num); - }; - /#define ABS_CNT/ { next; }; - /#define ABS_MAX/ { next; }; - /#define ABS_/ { - code_str = \"\\\"\" \$2 \"\\\"\"; - code_num = \$2; - printf(\"\t{ %-25s , EV_ABS , %-23s },\n\", code_str, code_num); - }; - /#define MSC_CNT/ { next; }; - /#define MSC_MAX/ { next; }; - /#define MSC_/ { - code_str = \"\\\"\" \$2 \"\\\"\"; - code_num = \$2; - printf(\"\t{ %-25s , EV_MSC , %-23s },\n\", code_str, code_num); - }; - /#define SW_CNT/ { next; }; - /#define SW_MAX/ { next; }; - /#define SW_/ { - code_str = \"\\\"\" \$2 \"\\\"\"; - code_num = \$2; - printf(\"\t{ %-25s , EV_SW , %-23s },\n\", code_str, code_num); - }; - /#define LED_CNT/ { next; }; - /#define LED_MAX/ { next; }; - /#define LED_/ { - code_str = \"\\\"\" \$2 \"\\\"\"; - code_num = \$2; - printf(\"\t{ %-25s , EV_LED , %-23s },\n\", code_str, code_num); - }; - /#define SND_CNT/ { next; }; - /#define SND_MAX/ { next; }; - /#define SND_/ { - code_str = \"\\\"\" \$2 \"\\\"\"; - code_num = \$2; - printf(\"\t{ %-25s , EV_SND , %-23s },\n\", code_str, code_num); - }; - END { - printf(\"\t{ NULL , 0 , 0 },\n\"); - printf(\"};\n\"); - printf(\"#endif\n\"); - }; - " < ${ABSOLUTE_LINUX_INPUT_H} >> event_name_to_code.h diff -Nru eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/evkey_code_to_name.h.sh.in.svn-base eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/evkey_code_to_name.h.sh.in.svn-base --- eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/evkey_code_to_name.h.sh.in.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/evkey_code_to_name.h.sh.in.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2009-2010 Paul Bender. -# -# This file is part of eventlircd. -# -# eventlircd is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# eventlircd is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with eventlircd. If not, see . - -# -# This script generates the evkey_code_to_name.h header file using the installed -# linux/input.h header file. -# - -# -# This script makes two assumptions about linux/input.h. First, it assumes that -# any evkey defines that are not monotonically increasing can be ignored. -# Second, it assumes that any evkey defines that are not numeric (e.g. defined -# as a function of other evkey defines) can be ignored. -# - -ABSOLUTE_LINUX_INPUT_H=@ABSOLUTE_LINUX_INPUT_H@ -AWK=@AWK@ - -rm -f evkey_code_to_name.h - -${AWK} --non-decimal-data " - BEGIN { - printf(\"#ifndef _EVENTLIRCD_EVKEY_CODE_TO_NAME_H_\n\"); - printf(\"#define _EVENTLIRCD_EVKEY_CODE_TO_NAME_H_ 1\n\"); - printf(\"#include <${ABSOLUTE_LINUX_INPUT_H}>\n\"); - printf(\"static const char *evkey_code_to_name[KEY_MAX] = {\n\"); - code_cur = -1; - }; - /#define KEY_CNT/ { next; }; - /#define KEY_MAX/ { next; }; - /#define KEY_MIN_INTERESTING/ { next; }; - /#define KEY_RESERVED/ { next; }; - /#define KEY_/ { - if ((\$3 == \$3 + 0) && (\$3 > code_cur)) { - printf(\"\t[ %-20s ] = \\\"%s\\\",\n\", \$2, \$2); - code_cur = \$3; - }; - }; - /#define BTN_/ { - if ((\$3 == \$3 + 0) && (\$3 > code_cur)) { - printf(\"\t[ %-20s ] = \\\"%s\\\",\n\", \$2, \$2); - code_cur = \$3; - }; - }; - END { - printf(\"};\n\"); - printf(\"#endif\n\"); - } - " < ${ABSOLUTE_LINUX_INPUT_H} >> evkey_code_to_name.h diff -Nru eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/evkey_type.h.sh.in.svn-base eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/evkey_type.h.sh.in.svn-base --- eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/evkey_type.h.sh.in.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/evkey_type.h.sh.in.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2009-2010 Paul Bender. -# -# This file is part of eventlircd. -# -# eventlircd is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# eventlircd is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with eventlircd. If not, see . - -# -# This script generates the evkey_type.h header file using the installed -# linux/input.h header file. -# -# -# This script makes two assumptions about linux/input.h. First, it assumes that -# any evkey defines that are not monotonically increasing can be ignored. -# Second, it assumes that any evkey defines that are not numeric (e.g. defined -# as a function of other evkey defines) can be ignored. -# - -ABSOLUTE_LINUX_INPUT_H=@ABSOLUTE_LINUX_INPUT_H@ -AWK=@AWK@ - -rm -f evkey_type.h - -${AWK} --non-decimal-data " - BEGIN { - printf(\"#ifndef _EVENTLIRCD_EVKEY_TYPE_H_\n\"); - printf(\"#define _EVENTLIRCD_EVKEY_TYPE_H_ 1\n\"); - printf(\"#include <${ABSOLUTE_LINUX_INPUT_H}>\n\"); - printf(\"#define EVENTLIRCD_EVKEY_TYPE_NULL 0\n\"); - printf(\"#define EVENTLIRCD_EVKEY_TYPE_KEY 1\n\"); - printf(\"#define EVENTLIRCD_EVKEY_TYPE_BTN 2\n\"); - printf(\"static const int evkey_type[KEY_MAX] = {\n\"); - code_cur = -1; - }; - /#define KEY_CNT/ { next; }; - /#define KEY_MAX/ { next; }; - /#define KEY_MIN_INTERESTING/ { next; }; - /#define KEY_RESERVED/ { next; }; - /#define KEY_/ { - if ((\$3 == \$3 + 0) && (\$3 > code_cur)) { - printf(\"\t[ %-20s ] = EVENTLIRCD_EVKEY_TYPE_KEY,\n\", \$2); - code_cur = \$3; - }; - }; - /#define BTN_/ { - if ((\$3 == \$3 + 0) && (\$3 > code_cur)) { - printf(\"\t[ %-20s ] = EVENTLIRCD_EVKEY_TYPE_BTN,\n\", \$2); - code_cur = \$3; - }; - }; - END { - printf(\"};\n\"); - printf(\"#endif\n\"); - }; -" < ${ABSOLUTE_LINUX_INPUT_H} >> evkey_type.h diff -Nru eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/input.c.svn-base eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/input.c.svn-base --- eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/input.c.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/input.c.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,2188 +0,0 @@ -/* - * Copyright (C) 2009-2010 Paul Bender. - * - * This file is part of eventlircd. - * - * eventlircd is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * eventlircd is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with eventlircd. If not, see . - */ - -/* - * Single Unix Specification Version 3 headers. - */ -#include /* C89 */ -#include /* POSIX */ -#include /* C99 */ -#include /* C89 */ -#include /* C89 */ -#include /* POSIX */ -#include /* C89 */ -#include /* C89 */ -#include /* POSIX */ -#include /* XSI */ -#include /* POSIX */ -/* - * Linux headers. - */ -#include /* */ -#include /* */ -#include /* */ -#include /* */ -/* - * libudev headers. - */ -#include -/* - * eventlircd headers (autogenerated). - */ -#include "event_name_to_code.h" -#include "evkey_code_to_name.h" -#include "evkey_type.h" -/* - * eventlircd headers. - */ -#include "input.h" -#include "lircd.h" -#include "monitor.h" - -/* - * The lircd_handler does not use the id parameter, so we need to let gcc's - * -Wused know that it is ok. - */ -#ifdef UNUSED -# error cannot define UNUSED because it is already defined -#endif -#if defined(__GNUC__) -# define UNUSED(x) x __attribute__((unused)) -#else -# define UNUSED(x) x -#endif - -#define DEVICE_NAME "eventlircd" -#define DEVICE_BUSTYPE 0 -#define DEVICE_VENDOR 0 -#define DEVICE_PRODUCT 0 -#define DEVICE_VERSION 0 - -#define EVENTLIRCD_EVMAP_LOCK_OFFSET (28) -#define EVENTLIRCD_EVMAP_LOCK_MASK ((0x7U ) << EVENTLIRCD_EVMAP_LOCK_OFFSET) -#define EVENTLIRCD_EVMAP_LOCK_CAPS ((0x1U << 2) << EVENTLIRCD_EVMAP_LOCK_OFFSET) -#define EVENTLIRCD_EVMAP_LOCK_NUM ((0x1U << 1) << EVENTLIRCD_EVMAP_LOCK_OFFSET) -#define EVENTLIRCD_EVMAP_LOCK_SCROLL ((0x1U << 0) << EVENTLIRCD_EVMAP_LOCK_OFFSET) -#define EVENTLIRCD_EVMAP_MOD_OFFSET (24) -#define EVENTLIRCD_EVMAP_MOD_MASK ((0xfU ) << EVENTLIRCD_EVMAP_MOD_OFFSET) -#define EVENTLIRCD_EVMAP_MOD_CTRL ((0x1U << 3) << EVENTLIRCD_EVMAP_MOD_OFFSET) -#define EVENTLIRCD_EVMAP_MOD_SHIFT ((0x1U << 2) << EVENTLIRCD_EVMAP_MOD_OFFSET) -#define EVENTLIRCD_EVMAP_MOD_ALT ((0x1U << 1) << EVENTLIRCD_EVMAP_MOD_OFFSET) -#define EVENTLIRCD_EVMAP_MOD_META ((0x1U << 0) << EVENTLIRCD_EVMAP_MOD_OFFSET) -#define EVENTLIRCD_EVMAP_TYPE_OFFSET (16) -#define EVENTLIRCD_EVMAP_TYPE_MASK ((0xffU ) << EVENTLIRCD_EVMAP_TYPE_OFFSET) -#define EVENTLIRCD_EVMAP_CODE_OFFSET (0) -#define EVENTLIRCD_EVMAP_CODE_MASK ((0xffffU ) << EVENTLIRCD_EVMAP_CODE_OFFSET) - -#if EV_MAX >= 65534 -# error cannot define EVENTLIRCD_EV_NULL because EV_MAX exceeds 65534 -#endif -#define EVENTLIRCD_EV_NULL 65535 - -#if KEY_MAX >= 65534U -# error cannot define EVENTLIRCD_EVMAP_NULL because KEY_MAX exceeds 65534 -#endif -#define EVENTLIRCD_EVMAP_NULL 65535U - -/* - * Macros for reading ioctl bit fields. - */ -#define BITFIELD_BITS_PER_LONG (sizeof(long) * 8) -#define BITFIELD_LONGS_PER_ARRAY(x) ((((x) - 1) / BITFIELD_BITS_PER_LONG) + 1) -#define BITFIELD_TEST(bit, array) ((array[((bit) / BITFIELD_BITS_PER_LONG)] >> ((bit) % BITFIELD_BITS_PER_LONG)) & 0x1) - -/* - * The 'input_device_event' structure is used by the 'current' and - * 'previous_list' members of the 'input_device' structure. It is used to hold - * information associated with the current event (when used by the - * 'input_device' structure's 'current' member) and the previous key press - * events (when used by the 'input_device' structure's 'previous_list' member). - * The current event is needed so that it can be forwared to either the lircd - * socket or the mouse/joystick event output device. The previous key press - * events are needed so that current input key repeat and release events can be - * mapped to the same output key event used by the corresponding key press - * event. - */ -struct input_device_event { - struct input_event event_in; /* The input event. */ - struct input_event event_out; /* The output event corresponding to the input event. */ - unsigned int repeat_count; /* The number of times the output key event has been repeated. */ - struct input_device_event *next; /* Pointer to the next input device event. */ -}; - -/* - * The 'input_device_evmap' structure is used by the 'evmap' member of the - * 'input_device' structure. It is used to hold information associated with - * each mapping of an input keyboard shortcut key sequence code (zero or more - * lock or modifier keys) followed by a base (non-lock and non-modifier) key - * converted to a code) to an output key code. - */ -struct input_device_evmap { - uint32_t code_in; /* The event map's input shortcut key sequence code. */ - __u16 code_out; /* The event map's output code. */ -}; - -/* - * The 'input_device' structure is used by the 'device_list' member of the - * 'eventlircd_input' variable. It is used to hold information associated with - * each input device handled by eventlircd. In addition to holding the evmap, - * current event and previous key press events information for the input device, - * it holds the information associated with the input device's mouse/joystick - * event output device. - */ -struct input_device { - int fd; /* The input device's file descriptor. */ - char *path; /* The input device's path in the device file system. */ - struct input_device_evmap *evmap; /* The input device's event map table. */ - size_t evmap_size; /* The input device's event map table size. */ - bool repeat_filter; /* The input device's repeat filter flag. */ - uint32_t lock_state; /* The input device's current lock key state. */ - uint32_t modifier_state; /* The input device's current modifier key state. */ - struct input_device_event current; /* The input device's current event. */ - struct input_device_event *previous_list; /* The input device's previous key events. */ - struct { - bool capslock; - bool numlock; - bool scrolllock; - } led; - char *remote; /* The remote control name used in lircd socket output. */ - struct { /* The input device's mouse/joystick event output device. */ - int fd; /* The output device's file descriptor. */ - struct uinput_user_dev dev; /* The output device. */ - bool syn_report; /* The output device has a pending synchronization report event. */ - } output; - struct input_device *next; /* Pointer to the next input device in the linked list. */ -}; - -/* - * The 'lirudevd_input' variable holds information associated with input event - * devices handled by eventlircd. It contains the information with associated - * with monitoring udev for input event devices and a list of the input devices - * currently being handled by eventlircd. The udev monitor file descriptor and - * each of the the input device file descriptors are registered with monitor - * so that input is notified of any udev and input device events that eventlircd - * might need to handle. - */ -struct { - char *evmap_dir; /* The name of the directory containing event map files. */ - bool repeat_filter; /* The flag indicating whether or not repeat filtering is enabled. */ - struct { - int fd; - struct udev_monitor *monitor; - } udev; - struct input_device *device_list; /* The linked list of udev detected input devices. */ -} eventlircd_input = { - .evmap_dir = NULL, - .repeat_filter = false, - .udev = { - .fd = -1, - .monitor = NULL - }, - .device_list = NULL -}; - -static struct input_device_event *input_device_previous_get(struct input_device *device) -{ - struct input_device_event *previous; - - if (device == NULL) { - errno = EINVAL; - return NULL; - } - for (previous = device->previous_list - ; (previous != NULL) && - ((previous->event_in.type != device->current.event_in.type) || - (previous->event_in.code != device->current.event_in.code)) - ; previous = previous->next); - - return previous; -} - -static int input_device_previous_pop(struct input_device *device) -{ - struct input_device_event **previous_ptr; - struct input_device_event *previous; - - if (device == NULL) { - errno = EINVAL; - return -1; - } - - previous_ptr = &(device->previous_list); - while (*previous_ptr != NULL) { - previous = *previous_ptr; - if ((previous->event_in.type == device->current.event_in.type) && - (previous->event_in.code == device->current.event_in.code)) { - *previous_ptr = previous->next; - free(previous); - } else { - previous_ptr = &((*previous_ptr)->next); - } - } - - return 0; -} - -static int input_device_previous_push(struct input_device *device) -{ - struct input_device_event *previous; - - if (device == NULL) { - errno = EINVAL; - return -1; - } - - /* - * Pop any events with the same type,code pair off the list. This would only - * occur were a previous key release event associated with this key lost. - * However, without this, the loss of key release events would cause the - * growth in the number of elements in 'previous_list' to be unbounded. - */ - input_device_previous_pop(device); - - if ((previous = (struct input_device_event *)malloc(sizeof(struct input_device_event))) == NULL) { - syslog(LOG_ERR, - "failed to allocate memory for previous input device event: %s\n", - strerror(errno)); - return -1; - } - - *previous = device->current; - - previous->next = device->previous_list; - device->previous_list = previous; - - return 0; -} - -static int input_device_send(struct input_device *device, const struct input_event *event) -{ - if (device == NULL) { - errno = EINVAL; - return -1; - } - if (event == NULL) { - errno = EINVAL; - return -1; - } - - if ((event->type == EV_SYN) && (event->code == SYN_REPORT) && (event->value == 0)) { - if (device->output.syn_report == true) { - if (write(device->output.fd, event, sizeof(*event)) != sizeof(*event)) { - syslog(LOG_ERR, - "failed to flush event for %s: %s\n", - device->output.dev.name, - strerror(errno)); - return -1; - } - device->output.syn_report = false; - } - } else { - if (write(device->output.fd, event, sizeof(*event)) != sizeof(*event)) { - syslog(LOG_ERR, - "failed to send event (%u %u %d) for %s: %s\n", - (unsigned int)event->type, - (unsigned int)event->code, - (int)event->value, - device->output.dev.name, - strerror(errno)); - return -1; - } - device->output.syn_report = true; - } - - return 0; -} - -static int input_device_evmap_compare(const void *evmap_a, const void *evmap_b) -{ - __s32 code_a = (__s32)(((const struct input_device_evmap *)evmap_a)->code_in); - __s32 code_b = (__s32)(((const struct input_device_evmap *)evmap_b)->code_in); - - return (code_a - code_b); -} - -static int input_device_evmap_exit(struct input_device *device) -{ - if (device == NULL) { - errno = EINVAL; - return -1; - } - - device->evmap_size = 0; - - if (device->evmap == NULL) { - return 0; - } - - free(device->evmap); - device->evmap = NULL; - - return 0; -} - -static int input_device_evmap_init(struct input_device *device, const char *evmap_dir, const char *evmap_file) -{ - char evmap_path[PATH_MAX + 1]; - FILE *fp; - char *line; - size_t line_len; - unsigned int line_number; - size_t evmap_index; - char *comment; - char name_in[128]; - char name_out[128]; - char *name_in_part; - char *name_in_part_state; - bool evmap_valid; - size_t i; - - if (device == NULL) { - errno = EINVAL; - return -1; - } - - device->evmap = NULL; - device->evmap_size = 0; - - if (evmap_dir == NULL) { - errno = EINVAL; - return -1; - } - - if (evmap_file == NULL) { - return 0; - } - - if (strnlen(evmap_dir, PATH_MAX + 1) == PATH_MAX + 1) { - errno = ENAMETOOLONG; - syslog(LOG_ERR, - "event map file directory '%s': %s\n", - evmap_path, - strerror(errno)); - return -1; - } - if (strnlen(evmap_file, PATH_MAX + 1) == PATH_MAX + 1) { - errno = ENAMETOOLONG; - syslog(LOG_ERR, - "event map file name '%s': %s\n", - evmap_file, - strerror(errno)); - return -1; - } - - if (strchr(evmap_file, '/')) { - syslog(LOG_ERR, - "event map file name '%s' contains a directory\n", - evmap_file); - return -1; - } - - if (evmap_dir[strlen(evmap_dir) - 1] == '/') { - if (snprintf(evmap_path, PATH_MAX + 1, "%s%s", evmap_dir, evmap_file) > PATH_MAX) { - errno = ENAMETOOLONG; - syslog(LOG_ERR, - "event map file path name '%s%s': %s\n", - evmap_dir, - evmap_file, - strerror(errno)); - return -1; - } - } else { - if (snprintf(evmap_path, PATH_MAX + 1, "%s/%s", evmap_dir, evmap_file) > PATH_MAX) { - errno = ENAMETOOLONG; - syslog(LOG_ERR, - "event map file path name '%s/%s': %s\n", - evmap_dir, - evmap_file, - strerror(errno)); - return -1; - } - } - - if ((fp = fopen(evmap_path, "r")) == NULL) { - syslog(LOG_ERR, - "failed to open event map file '%s': %s\n", - evmap_path, - strerror(errno)); - return -1; - } - - line_len = 0; - - evmap_index = 0; - for (evmap_index = 0 ; getline(&line, &line_len, fp) >= 0 ; evmap_index++); - device->evmap_size = evmap_index; - if (device->evmap_size == 0) { - return 0; - } - /* - * Allocate memory for the event map table. - */ - if ((device->evmap = (struct input_device_evmap *)malloc(device->evmap_size * sizeof(struct input_device_evmap))) == NULL) { - syslog(LOG_ERR, - "failed to allocate memory for the input device map %s: %s\n", - evmap_path, - strerror(errno)); - device->evmap_size = 0; - return -1; - } - - rewind(fp); - - line_number = 0; - evmap_index = 0; - while ((evmap_index < device->evmap_size) && (getline(&line, &line_len, fp) >= 0)) { - device->evmap[evmap_index].code_in = 0; - device->evmap[evmap_index].code_out = 0; - - line_number++; - - /* - * End the line at the first comment character. - */ - comment = strchr(line, '#'); - if (comment != NULL) { - *comment = '\0'; - } - /* - * Skip blank (whitespace only) lines. - */ - if (sscanf(line, " %127s", name_in) != 1) { - continue; - } - /* - * Split event map line into input keyboard shortcut and output key name. - */ - if (sscanf(line, " %127[a-zA-Z0-9_+] = %127[a-zA-Z0-9_] ", name_in, name_out) != 2) { - syslog(LOG_WARNING, - "%s:%u: format is not = \n", - evmap_path, - line_number); - continue; - } - name_in[127] = '\0'; - name_out[127] = '\0'; - if (strlen(name_in) < 1) { - syslog(LOG_WARNING, - "%s:%u:: name is empty", - evmap_path, - line_number); - continue; - } - if (strlen(name_out) < 1) { - syslog(LOG_WARNING, - "%s:%u:: name is empty", - evmap_path, - line_number); - continue; - } - /* - * parse input keyboard shortcut, validate lock key tockens, modifer - * key tokens and base key name, and determine corresponding input code. - * While the the tokens and names need not be treated as case sesitive, - * they are treated as case sesitive in order to force a more consistant - * file format. - */ - name_in_part = strtok_r(name_in, "+", &name_in_part_state); - if (name_in_part == NULL) { - syslog(LOG_WARNING, - "%s:%u:: keyboard shortcut could not be parsed\n", - evmap_path, - line_number); - continue; - } - evmap_valid = true; - while (name_in_part) { - if (strcmp(name_in_part, "capslock") == 0) { - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_CODE_MASK) { - syslog(LOG_WARNING, - "%s:%u:: the '%s' lock key token appeared after the base key name\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_LOCK_CAPS) { - syslog(LOG_WARNING, - "%s:%u:: the '%s' lock key token appeared more than once\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - device->evmap[evmap_index].code_in |= EVENTLIRCD_EVMAP_LOCK_CAPS; - } else if (strcmp(name_in_part, "numlock") == 0) { - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_CODE_MASK) - { - syslog(LOG_WARNING, - "%s:%u:: the '%s' lock key token appeared after the base key name\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_LOCK_NUM) - { - syslog(LOG_WARNING, - "%s:%u:: the '%s' lock key token appeared more than once\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - device->evmap[evmap_index].code_in |= EVENTLIRCD_EVMAP_LOCK_NUM; - } else if (strcmp(name_in_part, "scrolllock") == 0) { - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_CODE_MASK) { - syslog(LOG_WARNING, - "%s:%u:: the '%s' lock key token appeared after the base key name\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_LOCK_SCROLL) { - syslog(LOG_WARNING, - "%s:%u:: the '%s' lock key token appeared more than once\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - device->evmap[evmap_index].code_in |= EVENTLIRCD_EVMAP_LOCK_SCROLL; - } else if (strcmp(name_in_part, "ctrl") == 0) { - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_CODE_MASK) { - syslog(LOG_WARNING, - "%s:%u:: the '%s' modifier key token appeared after the base key name\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_MOD_CTRL) { - syslog(LOG_WARNING, - "%s:%u:: the '%s' modifier key token appeared more than once\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - device->evmap[evmap_index].code_in |= EVENTLIRCD_EVMAP_MOD_CTRL; - } else if (strcmp(name_in_part, "shift") == 0) { - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_CODE_MASK) { - syslog(LOG_WARNING, - "%s:%u:: the '%s' modifier key token appeared after the base key name\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_MOD_SHIFT) { - syslog(LOG_WARNING, - "%s:%u:: the '%s' modifier key token appeared more than once\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - device->evmap[evmap_index].code_in |= EVENTLIRCD_EVMAP_MOD_SHIFT; - } else if (strcmp(name_in_part, "alt") == 0) { - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_CODE_MASK) { - syslog(LOG_WARNING, - "%s:%u:: the '%s' modifier key token appeared after the base key name\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_MOD_ALT) { - syslog(LOG_WARNING, - "%s:%u:: the '%s' modifier key token appeared more than once\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - device->evmap[evmap_index].code_in |= EVENTLIRCD_EVMAP_MOD_ALT; - } else if (strcmp(name_in_part, "meta") == 0) { - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_CODE_MASK) { - syslog(LOG_WARNING, - "%s:%u:: the '%s' modifier key token appeared after the base key name\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_MOD_META) { - syslog(LOG_WARNING, - "%s:%u:: the '%s' modifier key token appeared more than once\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - device->evmap[evmap_index].code_in |= EVENTLIRCD_EVMAP_MOD_META; - } else { - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_CODE_MASK) { - evmap_valid = false; - break; - } - for (i = 0 ; (event_name_to_code[i].name != NULL) && (strcmp(name_in_part, event_name_to_code[i].name) != 0) ; i++); - if (event_name_to_code[i].name == NULL) { - syslog(LOG_WARNING, - "%s:%u:: '%s' is not a known key name\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - if ((strcmp(name_in_part, "KEY_CAPSLOCK" ) == 0) || - (strcmp(name_in_part, "KEY_NUMLOCK" ) == 0) || - (strcmp(name_in_part, "KEY_SCROLLLOCK") == 0)) { - syslog(LOG_WARNING, - "%s:%u:: '%s' is a key name that is part of the lock key token.\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - if ((strcmp(name_in_part, "KEY_LEFTCTRL" ) == 0) || (strcmp(name_in_part, "KEY_RIGHTCTRL" ) == 0) || - (strcmp(name_in_part, "KEY_LEFTSHIFT" ) == 0) || (strcmp(name_in_part, "KEY_RIGHTSHIFT" ) == 0) || - (strcmp(name_in_part, "KEY_LEFTALT" ) == 0) || (strcmp(name_in_part, "KEY_RIGHTALT" ) == 0) || - (strcmp(name_in_part, "KEY_LEFTMETA" ) == 0) || (strcmp(name_in_part, "KEY_RIGHTMETA" ) == 0)) { - syslog(LOG_WARNING, - "%s:%u:: '%s' is a key name that is part of the modifier key token.\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - break; - } - if ((strncmp(name_in_part, "KEY_", strlen("KEY_")) != 0) && - (strncmp(name_in_part, "BTN_", strlen("BTN_")) != 0)) { - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_LOCK_MASK) { - syslog(LOG_WARNING, - "%s:%u:: '%s' lock key applied to non-key event.\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - } - if (device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_MOD_MASK) { - syslog(LOG_WARNING, - "%s:%u:: '%s' modifier key applied to non-key event.\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - } - if (strcmp(name_out, "NULL") != 0) { - syslog(LOG_WARNING, - "%s:%u:: '%s' non-key event mapped to non-null value.\n", - evmap_path, - line_number, - name_in_part); - evmap_valid = false; - } - } - device->evmap[evmap_index].code_in |= ((uint32_t)(event_name_to_code[i].type)) << EVENTLIRCD_EVMAP_TYPE_OFFSET; - device->evmap[evmap_index].code_in |= ((uint32_t)(event_name_to_code[i].code)) << EVENTLIRCD_EVMAP_CODE_OFFSET; - } - name_in_part = strtok_r(NULL, "+", &name_in_part_state); - } - if (evmap_valid == false) { - continue; - } - if ((device->evmap[evmap_index].code_in & EVENTLIRCD_EVMAP_CODE_MASK) == 0) { - syslog(LOG_WARNING, - "%s:%u:: no key in keyboard shortcut.\n", - evmap_path, - line_number); - evmap_valid = false; - continue; - } - for (i = 0 ; i < evmap_index ; i++) { - if (device->evmap[evmap_index].code_in == device->evmap[i].code_in) { - syslog(LOG_WARNING, - "%s:%u:: duplicate keyboard shortcut.\n", - evmap_path, - line_number); - evmap_valid = false; - break; - } - } - if (evmap_valid == false) { - continue; - } - if (strcmp(name_out, "NULL") == 0) { - device->evmap[evmap_index].code_out = EVENTLIRCD_EVMAP_NULL; - } - else { - if ((strncmp(name_out, "KEY_", strlen("KEY_")) != 0) && - (strncmp(name_out, "BTN_", strlen("BTN_")) != 0)) { - syslog(LOG_WARNING, - "%s:%u:: '%s' is not a valid key name\n", - evmap_path, - line_number, - name_out); - evmap_valid = false; - continue; - } - for (i = 0 ; (event_name_to_code[i].name != NULL) && (strcmp(name_out, event_name_to_code[i].name) != 0) ; i++); - if (event_name_to_code[i].name == NULL) { - syslog(LOG_WARNING, - "%s:%u:: '%s' is not a valid key name\n", - evmap_path, - line_number, - name_out); - evmap_valid = false; - continue; - } - device->evmap[evmap_index].code_out = event_name_to_code[i].code; - } - evmap_index++; - } - device->evmap_size = evmap_index; - - syslog(LOG_DEBUG, - "%s: using %u valid keyboard shortcut mappings\n", - evmap_path, - (unsigned int)device->evmap_size); - - /* - * Sort the event map so that later look-ups can be done with a binary search. - */ - qsort(device->evmap, device->evmap_size, sizeof(struct input_device_evmap), input_device_evmap_compare); - - free(line); - fclose(fp); - - return 0; -} - -static int input_device_evmap_run(struct input_device *device) -{ - struct input_device_evmap search; - struct input_device_evmap *result; - - if (device == NULL) { - errno = EINVAL; - return -1; - } - - device->current.event_out = device->current.event_in; - - if (device->evmap == NULL) { - if (evkey_type[device->current.event_out.code] == EVENTLIRCD_EVKEY_TYPE_NULL) { - device->current.event_out.code = (__u16)(EVENTLIRCD_EVMAP_NULL); - } - return 0; - } - - search.code_in = (uint32_t)(device->current.event_out.code); - search.code_in |= (uint32_t)(device->current.event_out.type << 16); - /* - * Lock and modifier states are applied to keys only. - */ - if (device->current.event_out.type == EV_KEY) { - search.code_in |= device->modifier_state; - search.code_in |= device->lock_state; - } - result = bsearch(&search, device->evmap, device->evmap_size, sizeof(struct input_device_evmap), input_device_evmap_compare); - if (result == NULL) { - if (evkey_type[device->current.event_out.code] == EVENTLIRCD_EVKEY_TYPE_NULL) { - device->current.event_out.type = (__u16)(EVENTLIRCD_EVMAP_NULL); - } - return 0; - } - device->current.event_out.code = result->code_out; - - return 0; -} - -static int input_device_event_update(struct input_device *device, const struct input_event *event) -{ - struct input_device_event *previous; - long time_delta; - - if (device == NULL) { - errno = EINVAL; - return -1; - } - - if (event == NULL) { - errno = EINVAL; - return -1; - } - - device->current.event_in = *event; - device->current.event_out = device->current.event_in; - device->current.repeat_count = 0; - device->current.next = NULL; - - /* - * Map the current event. - */ - if (input_device_evmap_run(device) < 0) { - return -1; - } - if (device->current.event_out.code == EVENTLIRCD_EVMAP_NULL) { - memset(&(device->current.event_out), 0, sizeof(struct input_event)); - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return 0; - } - - /* - * When the device let's us know that the device's capslock, numlock or - * scrolllock state has changed, make sure that our state matches the - * device's state. - */ - if (device->current.event_in.type == EV_LED) { - switch (device->current.event_in.code) { - case LED_CAPSL: - if (device->current.event_in.value == 0) - device->lock_state &= ~EVENTLIRCD_EVMAP_LOCK_CAPS; - else - device->lock_state |= EVENTLIRCD_EVMAP_LOCK_CAPS; - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return 0; - break; - case LED_NUML: - if (device->current.event_in.value == 0) - device->lock_state &= ~EVENTLIRCD_EVMAP_LOCK_NUM; - else - device->lock_state |= EVENTLIRCD_EVMAP_LOCK_NUM; - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return 0; - break; - case LED_SCROLLL: - if (device->current.event_in.value == 0) - device->lock_state &= ~EVENTLIRCD_EVMAP_LOCK_SCROLL; - else - device->lock_state |= EVENTLIRCD_EVMAP_LOCK_SCROLL; - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return 0; - break; - } - } - - /* - * The remaining processing is for key events. - */ - if (device->current.event_in.type != EV_KEY) { - device->current.event_out = device->current.event_in; - device->current.repeat_count = 0; - return 0; - } - - /* - * If it is a lock key code, then update the lock state, null - * the current output event (as it has been handled) and return. - */ - if (device->current.event_in.code == KEY_CAPSLOCK) { - if (device->current.event_in.value == 1) { - /* - * Toggle the capslock status. - */ - device->lock_state ^= EVENTLIRCD_EVMAP_LOCK_CAPS; - /* - * Update the device's capslock status. - */ - if (device->led.capslock == true) { - struct input_event event = { - .type = EV_LED, - .code = LED_CAPSL, - .value = ((device->lock_state & EVENTLIRCD_EVMAP_LOCK_CAPS) == 0) ? 0 : 1 - }; - if (write(device->fd, &event, sizeof(event)) != sizeof(event)) { - syslog(LOG_WARNING, - "failed to update capslock LED state for device %s: %s\n", - device->path, - strerror(errno)); - } - } - } - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return 0; - } - if (device->current.event_in.code == KEY_NUMLOCK) { - if (device->current.event_in.value == 1) { - /* - * Toggle the numlock status. - */ - device->lock_state ^= EVENTLIRCD_EVMAP_LOCK_NUM; - /* - * Update the device's numlock status. - */ - if (device->led.numlock == true) { - struct input_event event = { - .type = EV_LED, - .code = LED_NUML, - .value = ((device->lock_state & EVENTLIRCD_EVMAP_LOCK_NUM) == 0) ? 0 : 1 - }; - if (write(device->fd, &event, sizeof(event)) != sizeof(event)) { - syslog(LOG_WARNING, - "failed to update numlock LED state for device %s: %s\n", - device->path, - strerror(errno)); - } - } - } - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return 0; - } - if (device->current.event_in.code == KEY_SCROLLLOCK) { - if (device->current.event_in.value == 1) { - /* - * Toggle the scrolllock status. - */ - device->lock_state ^= EVENTLIRCD_EVMAP_LOCK_SCROLL; - /* - * Update the device's scrolllock status. - */ - if (device->led.scrolllock == true) { - struct input_event event = { - .type = EV_LED, - .code = LED_SCROLLL, - .value = ((device->lock_state & EVENTLIRCD_EVMAP_LOCK_SCROLL) == 0) ? 0 : 1 - }; - if (write(device->fd, &event, sizeof(event)) != sizeof(event)) { - syslog(LOG_WARNING, - "failed to update scrolllock LED state for device %s: %s\n", - device->path, - strerror(errno)); - } - } - } - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return 0; - } - - /* - * If it is a modifier key code, then update the modifier state, null - * the current output event (as it has been handled) and return. - */ - if ((device->current.event_in.code == KEY_LEFTCTRL ) || - (device->current.event_in.code == KEY_RIGHTCTRL)) { - if (device->current.event_in.value == 0) - device->modifier_state &= ~EVENTLIRCD_EVMAP_MOD_CTRL; - else - device->modifier_state |= EVENTLIRCD_EVMAP_MOD_CTRL; - memset(&(device->current.event_out), 0, sizeof(struct input_event)); - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return 0; - } - if ((device->current.event_in.code == KEY_LEFTSHIFT ) || - (device->current.event_in.code == KEY_RIGHTSHIFT)) { - if (device->current.event_in.value == 0) - device->modifier_state &= ~EVENTLIRCD_EVMAP_MOD_SHIFT; - else - device->modifier_state |= EVENTLIRCD_EVMAP_MOD_SHIFT; - memset(&(device->current.event_out), 0, sizeof(struct input_event)); - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return 0; - } - if ((device->current.event_in.code == KEY_LEFTALT ) || - (device->current.event_in.code == KEY_RIGHTALT)) { - if (device->current.event_in.value == 0) - device->modifier_state &= ~EVENTLIRCD_EVMAP_MOD_ALT; - else - device->modifier_state |= EVENTLIRCD_EVMAP_MOD_ALT; - memset(&(device->current.event_out), 0, sizeof(struct input_event)); - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return 0; - } - if ((device->current.event_in.code == KEY_LEFTMETA ) || - (device->current.event_in.code == KEY_RIGHTMETA)) { - if (device->current.event_in.value == 0) - device->modifier_state &= ~EVENTLIRCD_EVMAP_MOD_META; - else - device->modifier_state |= EVENTLIRCD_EVMAP_MOD_META; - memset(&(device->current.event_out), 0, sizeof(struct input_event)); - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return 0; - } - - /* - * Map the current event. - */ - if (input_device_evmap_run(device) < 0) { - return -1; - } - if (device->current.event_out.code == EVENTLIRCD_EVMAP_NULL) { - memset(&(device->current.event_out), 0, sizeof(struct input_event)); - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return 0; - } - - switch (device->current.event_out.value) { - /* - * Process the key press event. - */ - case 1: - device->current.repeat_count = 0; - /* - * As this is a key press event, eventlircd will need later to map - * correctly any corresponding key repeat and key release events. - * Therefore, we push it onto the previous key press event list. - * If we fail, then we discard the event as we will not be able to - * map correctly any corresponding key repeat and key release - * events. - */ - if (input_device_previous_push(device) < 0) { - memset(&(device->current.event_out), 0, sizeof(struct input_event)); - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return -1; - } - break; - /* - * Process the key repeat event. - */ - case 2: - if ((previous = input_device_previous_get(device)) == NULL) { - memset(&(device->current.event_out), 0, sizeof(struct input_event)); - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return 0; - } - device->current.event_out.type = previous->event_out.type; - device->current.event_out.code = previous->event_out.code; - /* - * If the key repeat is too quick, then ignore it. The delay is - * longer for the first repeat in order to allow the user to release - * the key before repeating starts. - */ - if (device->repeat_filter == true) - { - if (evkey_type[device->current.event_out.code] == EVENTLIRCD_EVKEY_TYPE_KEY) { - time_delta = 1000000 * (device->current.event_out.time.tv_sec - previous->event_out.time.tv_sec ) + - (device->current.event_out.time.tv_usec - previous->event_out.time.tv_usec); - if (((previous->repeat_count == 0) && (time_delta < 900000)) || - ((previous->repeat_count == 1) && (time_delta < 500000)) || - ((previous->repeat_count == 2) && (time_delta < 300000)) || - ((previous->repeat_count == 3) && (time_delta < 200000)) || - ((previous->repeat_count == 4) && (time_delta < 150000)) || - ((previous->repeat_count >= 5) && (time_delta < 100000))) { - memset(&(device->current.event_out), 0, sizeof(struct input_event)); - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return 0; - } - } - } - previous->repeat_count++; - previous->event_out.time = device->current.event_out.time; - device->current.repeat_count = previous->repeat_count; - break; - /* - * Process the key release event. - */ - case 0: - if ((previous = input_device_previous_get(device)) == NULL) { - memset(&(device->current.event_out), 0, sizeof(struct input_event)); - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - return 0; - } - device->current.event_out.type = previous->event_out.type; - device->current.event_out.code = previous->event_out.code; - - device->current.repeat_count = 0; - input_device_previous_pop(device); - break; - default: - memset(&(device->current.event_out), 0, sizeof(struct input_event)); - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - break; - } - - return 0; -} - -static bool input_device_event_is_key(struct input_device *device) -{ - if (device == NULL) { - errno = EINVAL; - return false; - } - if (device->current.event_out.type != EV_KEY) { - return false; - } - if (device->current.event_out.code > KEY_MAX) { - return false; - } - if (evkey_type[device->current.event_out.code] != EVENTLIRCD_EVKEY_TYPE_KEY) { - return false; - } - return true; -} - -static int input_device_handler(void *id) -{ - struct input_device *device; - struct input_event event; - - if (id == NULL) { - errno = EINVAL; - return -1; - } - - device = (struct input_device *)id; - - if (read(device->fd, &event, sizeof(event)) != sizeof(event)) { - return 0; - } - - input_device_event_update(device, &event); - if (device->current.event_out.type == EVENTLIRCD_EV_NULL) { - return 0; - } - - /* - * Send keys to lircd and send all other events to the output device - * (assuming it exists). - */ - if (input_device_event_is_key(device) == true) { - if (lircd_send(&device->current.event_out, evkey_code_to_name[device->current.event_out.code], device->current.repeat_count, device->remote) != 0) - { - return -1; - } - } else if (device->output.fd != -1) { - if (input_device_send(device, &device->current.event_out) != 0) - { - return -1; - } - } - - return 0; -} - -static int input_device_close(struct input_device *device) -{ - int return_code; - - if (device == NULL) { - errno = EINVAL; - return -1; - } - - return_code = 0; - - if (monitor_client_remove(device->fd) != 0) { - return_code = -1; - } - - if (device->output.fd != -1) { - ioctl(device->output.fd, UI_DEV_DESTROY); - close(device->output.fd); - device->output.fd = -1; - syslog(LOG_INFO, - "input device %s: output event device destroyed", - device->path); - } - if (device->remote == NULL) { - free(device->remote); - } - input_device_evmap_exit(device); - if (device->fd != -1) { - close(device->fd); - device->fd = -1; - syslog(LOG_INFO, - "intput device %s: released", - device->path); - } - if (device->path != NULL) { - free(device->path); - device->path = NULL; - } - - return 0; -} - -static int input_device_purge() -{ - struct input_device **device_ptr; - struct input_device *device; - int return_code; - - return_code = 0; - - device_ptr = &(eventlircd_input.device_list); - while (*device_ptr != NULL) { - device = *device_ptr; - if (device->fd == -1) { - *device_ptr = device->next; - if (input_device_close(device) != 0) { - free(device); - return_code = -1; - } - } else { - device_ptr = &((*device_ptr)->next); - } - } - - return return_code; -} - -static int input_device_remove(struct udev_device *udev_device) -{ - const char* path = NULL; - struct input_device *device; - int return_code; - - if (udev_device == NULL) { - errno = EINVAL; - return -1; - } - - path = udev_device_get_devnode(udev_device); - if (path == NULL) { - return 0; - } - - return_code = 0; - - for (device = eventlircd_input.device_list ; device != NULL ; device = device->next) { - if (device->path == NULL) { - continue; - } - if (strncmp(device->path, path, PATH_MAX) == 0) { - if (input_device_close(device) != 0) { - return_code = -1; - } - } - } - if (input_device_purge() != 0) { - return_code = -1; - } - - return return_code; -} - -static int input_device_add(struct udev_device *udev_device) -{ - const char *uinput_devname[] = { - "/dev/uinput", - "/dev/input/uinput", - "/dev/misc/uinput", - NULL - }; - const char* name; - const char* path; - const char* enable; - const char* evmap_file; - const char* remote; - struct input_device *device; - unsigned long bit[BITFIELD_LONGS_PER_ARRAY(EV_MAX)]; - unsigned long bit_key[BITFIELD_LONGS_PER_ARRAY(KEY_MAX)]; - unsigned long bit_rel[BITFIELD_LONGS_PER_ARRAY(REL_MAX)]; - unsigned long bit_abs[BITFIELD_LONGS_PER_ARRAY(ABS_MAX)]; - unsigned long bit_msc[BITFIELD_LONGS_PER_ARRAY(MSC_MAX)]; - unsigned long bit_sw[BITFIELD_LONGS_PER_ARRAY(SW_MAX)]; - unsigned long bit_led[BITFIELD_LONGS_PER_ARRAY(LED_MAX)]; - unsigned long bit_snd[BITFIELD_LONGS_PER_ARRAY(SND_MAX)]; - unsigned long bit_ff[BITFIELD_LONGS_PER_ARRAY(FF_MAX)]; - unsigned long bit_ff_status[BITFIELD_LONGS_PER_ARRAY(FF_STATUS_MAX)]; - __u16 i; - __u16 j; - size_t z; - bool output_active; - __u16 type; - __u16 code; - uint32_t code_in; - __u16 code_out; - - if (udev_device == NULL) { - errno = EINVAL; - return -1; - } - - name = udev_device_get_property_value(udev_device_get_parent(udev_device), "NAME"); - if ((name != NULL) && (strncmp(name, "\"eventlircd\"", strlen("\"eventlircd\"")) == 0)) { - return 0; - } - - path = udev_device_get_devnode(udev_device); - if (path == NULL) { - return 0; - } - - enable = udev_device_get_property_value(udev_device, "eventlircd_enable"); - if ((enable == NULL) ||(strncmp(enable, "true", sizeof("true")) != 0)) { - return 0; - } - - evmap_file = udev_device_get_property_value(udev_device, "eventlircd_evmap"); - - for (device = eventlircd_input.device_list ; device != NULL ; device = device->next) { - if (strncmp(device->path, path, PATH_MAX) == 0) { - return 0; - } - } - - remote = udev_device_get_property_value(udev_device, "eventlircd_remote"); - if (remote == NULL) { - remote = "devinput"; - } - - if ((device = calloc(1, sizeof(struct input_device))) == NULL) { - syslog(LOG_ERR, - "input device %s: memory allocation failed: %s\n", - path, - strerror(errno)); - return -1; - } - - device->path = NULL; - device->fd = -1; - device->evmap = NULL; - device->remote = NULL; - device->output.fd = -1; - - if ((device->path = strndup(path, PATH_MAX)) == NULL) { - syslog(LOG_ERR, - "input device %s: memory allocation for path name failed: %s\n", - path, - strerror(errno)); - free(device); - return -1; - } - if ((device->fd = open(device->path, O_RDWR)) < 0) { - syslog(LOG_ERR, - "input device %s: device open failed: %s\n", - device->path, - strerror(errno)); - free(device->path); - free(device); - return -1; - } - if (ioctl(device->fd, EVIOCGRAB, 1) < 0) { - syslog(LOG_ERR, - "input device %s: device grab failed: %s\n", - device->path, - strerror(errno)); - close(device->fd); - free(device->path); - free(device); - return -1; - } - - if (input_device_evmap_init(device, eventlircd_input.evmap_dir, evmap_file) != 0) { - close(device->fd); - free(device->path); - free(device); - return -1; - } - - device->repeat_filter = eventlircd_input.repeat_filter; - - if ((device->remote = strndup(remote, PATH_MAX)) == NULL) { - syslog(LOG_ERR, - "input device %s: memory allocation for remote name failed: %s\n", - path, - strerror(errno)); - input_device_evmap_exit(device); - close(device->fd); - free(device->path); - free(device); - return -1; - } - - /* - * Query the input device for event types and codes that it supports. - */ - memset(bit, 0, sizeof(bit)); - ioctl(device->fd, EVIOCGBIT(0, EV_MAX), bit); - for (i = 1 ; i < EV_MAX ; i++) { - if (BITFIELD_TEST(i, bit)) { - switch (i) { - case EV_KEY: - memset(bit_key, 0, sizeof(bit_key)); - ioctl(device->fd, EVIOCGBIT(EV_KEY, KEY_MAX), bit_key); - break; - case EV_REL: - memset(bit_rel, 0, sizeof(bit_rel)); - ioctl(device->fd, EVIOCGBIT(EV_REL, REL_MAX), bit_rel); - break; - case EV_ABS: - memset(bit_abs, 0, sizeof(bit_abs)); - ioctl(device->fd, EVIOCGBIT(EV_ABS, ABS_MAX), bit_abs); - break; - case EV_MSC: - memset(bit_msc, 0, sizeof(bit_msc)); - ioctl(device->fd, EVIOCGBIT(EV_MSC, MSC_MAX), bit_msc); - break; - case EV_SW: - memset(bit_sw, 0, sizeof(bit_sw)); - ioctl(device->fd, EVIOCGBIT(EV_SW, SW_MAX), bit_sw); - break; - case EV_LED: - memset(bit_led, 0, sizeof(bit_led)); - ioctl(device->fd, EVIOCGBIT(EV_LED, LED_MAX), bit_led); - break; - case EV_SND: - memset(bit_snd, 0, sizeof(bit_snd)); - ioctl(device->fd, EVIOCGBIT(EV_SND, SND_MAX), bit_snd); - break; - case EV_REP: - break; - case EV_FF: - memset(bit_ff, 0, sizeof(bit_ff)); - ioctl(device->fd, EVIOCGBIT(EV_FF, FF_MAX), bit_ff); - break; - case EV_FF_STATUS: - memset(bit_ff_status, 0, sizeof(bit_ff_status)); - ioctl(device->fd, EVIOCGBIT(EV_FF_STATUS, FF_STATUS_MAX), bit_ff_status); - break; - default: - break; - } - } - } - - /* - * Check for event types and codes that are not supported by eventlircd. - */ - for (i = 1 ; i < EV_MAX ; i++) { - if (BITFIELD_TEST(i, bit)) { - switch (i) { - case EV_KEY: - break; - case EV_REL: - break; - case EV_ABS: - break; - case EV_MSC: - syslog(LOG_DEBUG, - "input device %s: events of unsupported event type EV_MSC will be discarded\n", - device->path); - for (j = 0 ; j < MSC_MAX ; j++) { - if (BITFIELD_TEST(j, bit_msc) != 0) { - syslog(LOG_DEBUG, - "input device %s: event code 0x%02x of unsupported event type EV_MSC will be discarded\n", - device->path, - (unsigned int)j); - } - } - break; - case EV_SW: - syslog(LOG_DEBUG, - "input device %s: events of unsupported event type EV_SW will be discarded\n", - device->path); - for (j = 0 ; j < SW_MAX ; j++) { - if (BITFIELD_TEST(j, bit_sw) != 0) { - syslog(LOG_DEBUG, - "input device %s: event code 0x%02x of unsupported event type EV_SW will be discarded\n", - device->path, - (unsigned int)j); - } - } - break; - case EV_LED: - for (j = 0 ; j < LED_MAX ; j++) { - if ((j == LED_CAPSL ) || - (j == LED_NUML ) || - (j == LED_SCROLLL)) { - continue; - } - if (BITFIELD_TEST(j, bit_led) != 0) { - syslog(LOG_DEBUG, - "input device %s: unsupported event code 0x%02x of event type EV_LED will be discarded\n", - device->path, - (unsigned int)j); - } - } - break; - case EV_SND: - syslog(LOG_DEBUG, - "input device %s: events of unsupported event type EV_SND will be discarded\n", - device->path); - for (j = 0 ; j < SND_MAX ; j++) { - if (BITFIELD_TEST(j, bit_snd) != 0) { - syslog(LOG_DEBUG, - "input device %s: event code 0x%02x of unsupported event type EV_SND will be discarded\n", - device->path, - (unsigned int)j); - } - } - break; - case EV_REP: - syslog(LOG_DEBUG, - "input device %s: events of unsupported event type EV_REP will be discarded\n", - device->path); - break; - case EV_FF: - syslog(LOG_DEBUG, - "input device %s: events of unsupported event type EV_FF will be discarded\n", - device->path); - for (j = 0 ; j < FF_MAX ; j++) { - if (BITFIELD_TEST(j, bit_ff) != 0) { - syslog(LOG_DEBUG, - "input device %s: event code 0x%02x of unsupported event type EV_FF will be discarded\n", - device->path, - (unsigned int)j); - } - } - break; - case EV_PWR: - syslog(LOG_DEBUG, - "input device %s: events of unsupported event type EV_PWR will be discarded\n", - device->path); - break; - case EV_FF_STATUS: - syslog(LOG_DEBUG, - "input device %s: events of unsupported event type EV_FF_STATUS will be discarded\n", - device->path); - for (j = 0 ; j < FF_STATUS_MAX ; j++) - { - if (BITFIELD_TEST(j, bit_ff_status) != 0) { - syslog(LOG_DEBUG, - "input device %s: event code 0x%02x of unsupported event type EV_FF_STATUS will be discarded\n", - device->path, - (unsigned int)j); - } - } - break; - default: - syslog(LOG_DEBUG, - "input device %s: events of unsupported event type 0x%02x will be discarded\n", - device->path, - (unsigned int)i); - break; - } - } - } - - device->led.capslock = false; - device->led.numlock = false; - device->led.scrolllock = false; - if (BITFIELD_TEST(EV_LED, bit) != 0) { - if (BITFIELD_TEST(LED_CAPSL, bit_led) != 0) { - device->led.capslock = true; - } - if (BITFIELD_TEST(LED_NUML, bit_led) != 0) { - device->led.numlock = true; - } - if (BITFIELD_TEST(LED_SCROLLL, bit_led) != 0) { - device->led.scrolllock = true; - } - } - device->lock_state = 0; - - device->modifier_state = 0; - - device->previous_list = NULL; - memset(&(device->current.event_in), 0, sizeof(struct input_event)); - device->current.event_in.type = EVENTLIRCD_EV_NULL; - memset(&(device->current.event_out), 0, sizeof(struct input_event)); - device->current.event_out.type = EVENTLIRCD_EV_NULL; - device->current.repeat_count = 0; - - /* - * Create output event device for events that are not sent to the lircd socket. - */ - device->output.fd = -1; - for (z = 0 ; (device->output.fd == -1) && (uinput_devname[z] != NULL) ; z++) { - device->output.fd = open(uinput_devname[z], O_WRONLY | O_NDELAY); - } - if (device->output.fd == -1) { - syslog(LOG_ERR, - "input device %s: unable to open event device: %s\n", - device->path, - strerror(errno)); - free(device->remote); - input_device_evmap_exit(device); - close(device->fd); - free(device->path); - free(device); - return -1; - } - - memset(&(device->output.dev), 0, sizeof(device->output.dev)); - - device->output.syn_report = false; - - strncpy(device->output.dev.name, DEVICE_NAME, UINPUT_MAX_NAME_SIZE - 1); - device->output.dev.name[UINPUT_MAX_NAME_SIZE - 1] = '\0'; - if (ioctl(device->fd, EVIOCGID, &(device->output.dev.id)) != 0) { - syslog(LOG_WARNING, - "input device %s: unable to retreive id information: %s\n", - device->path, - strerror(errno)); - device->output.dev.id.bustype = 0; - device->output.dev.id.vendor = 0; - device->output.dev.id.product = 0; - device->output.dev.id.version = 0; - } - - if (ioctl(device->output.fd, UI_SET_PHYS, device->path) < 0) { - syslog(LOG_ERR, - "input device %s: unable to set UI_SET_PHYS for output event device: %s\n", - device->path, - strerror(errno)); - free(device->remote); - close(device->output.fd); - input_device_evmap_exit(device); - close(device->fd); - free(device->path); - free(device); - return -1; - } - - /* - * Configure mouse/joystick device with the mapped event types and codes - * that are supported by eventlircd. - */ - output_active = false; - for (i = 1 ; i < EV_MAX ; i++) { - if (BITFIELD_TEST(i, bit)) { - if (i == 0) { - continue; - } - switch (i) { - case EV_KEY: - for (j = 0 ; j < KEY_MAX ; j++) { - type = i; - code = j; - if (BITFIELD_TEST(code, bit_key) != 0) { - /* - * If the key code is a lock key code, then skip it - * as eventlircd consumes it as part of keyboard - * shortcut mapping. - */ - if ((code == KEY_CAPSLOCK ) || - (code == KEY_NUMLOCK ) || - (code == KEY_SCROLLLOCK)) { - continue; - } - /* - * If the key code is a modifier key code, then skip - * it as eventlircd consumes it as part of keyboard - * shortcut mapping. - */ - if ((code == KEY_LEFTCTRL ) || (code == KEY_RIGHTCTRL ) || - (code == KEY_LEFTSHIFT) || (code == KEY_RIGHTSHIFT) || - (code == KEY_LEFTALT ) || (code == KEY_RIGHTALT ) || - (code == KEY_LEFTMETA ) || (code == KEY_RIGHTMETA )) { - continue; - } - /* - * Map the key code. - */ - device->current.event_in.type = type; - device->current.event_in.code = code; - input_device_evmap_run(device); - /* - * The key code maps to NULL so move on to the next - * key code. - */ - code = device->current.event_out.code; - if (code == EVENTLIRCD_EVMAP_NULL) { - continue; - } - /* - * The mapped key code is a button, so mark it as - * supported by the mouse/joystick device. - */ - if (evkey_type[code] == EVENTLIRCD_EVKEY_TYPE_BTN) { - if (ioctl(device->output.fd, UI_SET_EVBIT, EV_KEY) < 0) { - syslog(LOG_ERR, - "input device %s: failed to set UI_SET_EVBIT EV_KEY for output event device: %s\n", - device->path, - strerror(errno)); - } - if (ioctl(device->output.fd, UI_SET_KEYBIT, code) < 0) { - syslog(LOG_ERR, - "input device %s: failed to set UI_SET_KEYBIT 0x%02x for output event device: %s\n", - device->path, - (unsigned int)code, - strerror(errno)); - } - output_active = true; - } - } - } - break; - case EV_REL: - for (j = 0 ; j < REL_MAX ; j++) { - type = i; - code = j; - if (BITFIELD_TEST(code, bit_rel) != 0) { - /* - * Map the key code. - */ - device->current.event_in.type = type; - device->current.event_in.code = code; - input_device_evmap_run(device); - /* - * The key code maps to NULL so move on to the next - * key code. - */ - code = device->current.event_out.code; - if (code == EVENTLIRCD_EVMAP_NULL) { - continue; - } - if (ioctl(device->output.fd, UI_SET_EVBIT, EV_REL) < 0) { - syslog(LOG_ERR, - "input device %s: failed to set UI_SET_EVBIT EV_REL for output event device: %s\n", - device->path, - strerror(errno)); - } - if (ioctl(device->output.fd, UI_SET_RELBIT, code) < 0) { - syslog(LOG_ERR, - "input device %s: failed to set UI_SET_RELBIT 0x%02x for output event device: %s\n", - device->path, - (unsigned int)code, - strerror(errno)); - } - output_active = true; - } - } - break; - case EV_ABS: - for (j = 0 ; j < ABS_MAX ; j++) { - type = i; - code = j; - if (BITFIELD_TEST(code, bit_abs) != 0) { - /* - * Map the key code. - */ - device->current.event_in.type = type; - device->current.event_in.code = code; - input_device_evmap_run(device); - /* - * The key code maps to NULL so move on to the next - * key code. - */ - code = device->current.event_out.code; - if (code == EVENTLIRCD_EVMAP_NULL) { - continue; - } - struct input_absinfo absinfo; - if (ioctl(device->output.fd, UI_SET_EVBIT, EV_ABS) < 0) { - syslog(LOG_ERR, - "input device %s: failed to set UI_SET_EVBIT EV_ABS for output event device: %s\n", - device->path, - strerror(errno)); - } - if (ioctl(device->output.fd, UI_SET_ABSBIT, code) < 0) { - syslog(LOG_ERR, - "input device %s: failed to set UI_SET_ABSBIT 0x%02x for output event device: %s\n", - device->path, - (unsigned int)code, - strerror(errno)); - } - if (ioctl(device->fd, EVIOCGABS(code), &absinfo) < 0) { - syslog(LOG_ERR, - "input device %s: failed to get ABS information for 0x%02x of output event device: %s\n", - device->path, - (unsigned int)code, - strerror(errno)); - } else { - device->output.dev.absmax[code] = absinfo.maximum; - device->output.dev.absmin[code] = absinfo.minimum; - device->output.dev.absfuzz[code] = absinfo.fuzz; - device->output.dev.absflat[code] = absinfo.flat; - } - output_active = true; - } - } - break; - case EV_MSC: - break; - case EV_SW: - break; - case EV_LED: - break; - case EV_SND: - break; - case EV_REP: - break; - case EV_FF: - break; - case EV_FF_STATUS: - break; - } - } - } - /* - * Make sure that any buttos that are the result of keyboard shortcut - * mapping are included in the mouse/joystick device. - */ - if (BITFIELD_TEST(EV_KEY, bit) != 0) { - for (z = 0 ; z < device->evmap_size ; z++) { - code_in = device->evmap[z].code_in; - code_out = device->evmap[z].code_out; - /* - * Skip keyboard shortcuts that map to NULL. - */ - if (code_out == EVENTLIRCD_EVMAP_NULL) { - continue; - } - /* - * Ignore keyboard shortcuts that require keys the device - * does not support. - */ - if (((code_in & EVENTLIRCD_EVMAP_LOCK_CAPS) != 0) && - (BITFIELD_TEST(KEY_CAPSLOCK, bit_key) == 0)) { - continue; - } - if (((code_in & EVENTLIRCD_EVMAP_LOCK_NUM) != 0) && - (BITFIELD_TEST(KEY_NUMLOCK, bit_key) == 0)) { - continue; - } - if (((code_in & EVENTLIRCD_EVMAP_LOCK_SCROLL) != 0) && - (BITFIELD_TEST(KEY_SCROLLLOCK, bit_key) == 0)) { - continue; - } - if (((code_in & EVENTLIRCD_EVMAP_MOD_CTRL) != 0) && - (BITFIELD_TEST(KEY_LEFTCTRL, bit_key) == 0) && - (BITFIELD_TEST(KEY_RIGHTCTRL, bit_key) == 0)) { - continue; - } - if (((code_in & EVENTLIRCD_EVMAP_MOD_SHIFT) != 0) && - (BITFIELD_TEST(KEY_LEFTSHIFT, bit_key) == 0) && - (BITFIELD_TEST(KEY_RIGHTSHIFT, bit_key) == 0)) { - continue; - } - if (((code_in & EVENTLIRCD_EVMAP_MOD_ALT) != 0) && - (BITFIELD_TEST(KEY_LEFTALT, bit_key) == 0) && - (BITFIELD_TEST(KEY_RIGHTALT, bit_key) == 0)) { - continue; - } - if (((code_in & EVENTLIRCD_EVMAP_MOD_META) != 0) && - (BITFIELD_TEST(KEY_LEFTMETA, bit_key) == 0) && - (BITFIELD_TEST(KEY_RIGHTMETA, bit_key) == 0)) { - continue; - } - if (BITFIELD_TEST(code_in & EVENTLIRCD_EVMAP_CODE_MASK, bit_key) == 0) { - continue; - } - /* - * The output is a button so add it to mouse/joystick device. - */ - if (evkey_type[code_out] == EVENTLIRCD_EVKEY_TYPE_BTN) { - if (ioctl(device->output.fd, UI_SET_EVBIT, EV_KEY) < 0) { - syslog(LOG_ERR, - "input device %s: failed to set UI_SET_EVBIT EV_KEY for output event device: %s\n", - device->path, - strerror(errno)); - } - if (ioctl(device->output.fd, UI_SET_KEYBIT, code_out) < 0) { - syslog(LOG_ERR, - "input device %s: failed to set UI_SET_KEYBIT 0x%02x for output event device: %s\n", - device->path, - (unsigned int)code_out, - strerror(errno)); - } - output_active = true; - } - } - } - /* - * - */ - if (output_active == true) { - write(device->output.fd, &device->output.dev, sizeof(device->output.dev)); - if (ioctl(device->output.fd, UI_DEV_CREATE)) { - syslog(LOG_ERR, - "input device %s: unable to create output event device: %s\n", - device->path, - strerror(errno)); - close(device->output.fd); - free(device->remote); - input_device_evmap_exit(device); - close(device->fd); - free(device->path); - free(device); - return -1; - } - } else { - close(device->output.fd); - device->output.fd = -1; - } - - /* - * Make sure we recieve notifications when the device has changed state. - */ - if (monitor_client_add(device->fd, &input_device_handler, device) != 0) { - close(device->output.fd); - free(device->remote); - input_device_evmap_exit(device); - close(device->fd); - free(device->path); - free(device); - return -1; - } - - /* - * Make sure that our state matches the device's state for capslock, numlock - * and scrolllock. - */ - if ((device->led.capslock == true) || - (device->led.numlock == true) || - (device->led.scrolllock == true)) { - int8_t bit[LED_MAX/8 + 1]; - memset(bit, 0, sizeof(bit)); - ioctl(device->fd, EVIOCGLED(sizeof(bit)), bit); - if (device->led.capslock == true) { - if (((bit[LED_CAPSL/8] >> (LED_CAPSL%8)) & 0x1) == 0) - device->lock_state &= ~EVENTLIRCD_EVMAP_LOCK_CAPS; - else - device->lock_state |= EVENTLIRCD_EVMAP_LOCK_CAPS; - } - if (device->led.numlock == true) { - if (((bit[LED_NUML/8] >> (LED_NUML%8)) & 0x1) == 0) - device->lock_state &= ~EVENTLIRCD_EVMAP_LOCK_NUM; - else - device->lock_state |= EVENTLIRCD_EVMAP_LOCK_NUM; - } - if (device->led.scrolllock == true) { - if (((bit[LED_SCROLLL/8] >> (LED_SCROLLL%8)) & 0x1) == 0) - device->lock_state &= ~EVENTLIRCD_EVMAP_LOCK_SCROLL; - else - device->lock_state |= EVENTLIRCD_EVMAP_LOCK_SCROLL; - } - } - - device->next = eventlircd_input.device_list; - eventlircd_input.device_list = device; - - syslog(LOG_INFO, - "input device %s: grabbed", - device->path); - if (device->output.fd != -1) { - syslog(LOG_INFO, - "input device %s: created output event device", - device->path); - } - - return 0; -} - -static int input_handler(void* UNUSED(id)) -{ - struct udev_device *udev_device; - const char *action; - - if (eventlircd_input.udev.monitor == NULL) - { - return -1; - } - - udev_device = udev_monitor_receive_device(eventlircd_input.udev.monitor); - if (udev_device == NULL) { - return -1; - } - - action = udev_device_get_action(udev_device); - if (action != NULL) { - if (strncmp(action, "add", strlen("add") + 1) == 0) { - if (input_device_add(udev_device) != 0) { - return -1; - } - } else if (strncmp(action, "remove", strlen("remove") + 1) == 0) { - if (input_device_remove(udev_device) != 0) { - return -1; - } - } - } - - udev_device_unref(udev_device); - - return 0; -} - -int input_exit() -{ - struct udev *udev = NULL; - int return_code; - struct input_device *device; - - return_code = 0; - - if (monitor_client_remove(eventlircd_input.udev.fd) != 0) { - return_code = -1; - } - - for (device = eventlircd_input.device_list ; device != NULL ; device = device->next) { - if (input_device_close(device) != 0) { - return_code = -1; - } - } - if (input_device_purge() != 0) { - return_code = -1; - } - - if (eventlircd_input.udev.monitor != NULL) { - udev = udev_monitor_get_udev(eventlircd_input.udev.monitor); - udev_monitor_unref(eventlircd_input.udev.monitor); - eventlircd_input.udev.monitor = NULL; - if (udev != NULL) { - udev_unref(udev); - } else { - return_code = -1; - } - } - eventlircd_input.udev.fd = -1; - - if (eventlircd_input.evmap_dir != NULL) { - free(eventlircd_input.evmap_dir); - eventlircd_input.evmap_dir = NULL; - } - - return return_code; -} - -int input_init(const char *evmap_dir, const bool repeat_filter) -{ - struct udev *udev; - struct udev_enumerate *enumerate; - struct udev_list_entry *device_list; - struct udev_list_entry *device; - const char *syspath; - struct udev_device *udev_device; - - eventlircd_input.evmap_dir = NULL; - eventlircd_input.repeat_filter = false; - eventlircd_input.udev.fd = -1; - eventlircd_input.udev.monitor = NULL; - eventlircd_input.device_list = NULL; - - if (evmap_dir == NULL) { - errno = EINVAL; - return -1; - } - - if ((eventlircd_input.evmap_dir = strndup(evmap_dir, PATH_MAX + 1)) == NULL) { - syslog(LOG_ERR, - "failed to allocate memory for the input device event map directory name %s: %s\n", - evmap_dir, - strerror(errno)); - input_exit(); - return -1; - } - - eventlircd_input.repeat_filter = repeat_filter; - - if ((udev = udev_new()) == NULL) { - syslog(LOG_ERR, - "failed to bind the udev monitor: %s\n", - strerror(errno)); - input_exit(); - return -1; - } - - if ((eventlircd_input.udev.monitor = udev_monitor_new_from_netlink(udev, "udev")) == NULL) { - syslog(LOG_ERR, - "failed to bind the udev monitor: %s\n", - strerror(errno)); - input_exit(); - return -1; - } - - if ((eventlircd_input.udev.fd = udev_monitor_get_fd(eventlircd_input.udev.monitor)) == -1) { - syslog(LOG_ERR, - "failed to get udev monitor file descriptor: %s\n", - strerror(errno)); - input_exit(); - return -1; - } - - if (udev_monitor_filter_add_match_subsystem_devtype(eventlircd_input.udev.monitor, "input", NULL) < 0) { - syslog(LOG_ERR, - "failed to bind the udev monitor: %s\n", - strerror(errno)); - input_exit(); - return -1; - } - - if (udev_monitor_enable_receiving(eventlircd_input.udev.monitor)) { - syslog(LOG_ERR, - "failed to bind the udev monitor: %s\n", - strerror(errno)); - input_exit(); - return -1; - } - - if ((enumerate = udev_enumerate_new(udev)) == NULL) { - syslog(LOG_ERR, - "failed to enumerate udev devices: %s\n", - strerror(errno)); - input_exit(); - return -1; - } - - udev_enumerate_add_match_subsystem(enumerate, "input"); - udev_enumerate_scan_devices(enumerate); - device_list = udev_enumerate_get_list_entry(enumerate); - udev_list_entry_foreach(device, device_list) { - if ((syspath = udev_list_entry_get_name(device)) == NULL) { - input_exit(); - return -1; - } - if ((udev_device = udev_device_new_from_syspath(udev, syspath)) == NULL) { - input_exit(); - return -1; - } - if (input_device_add(udev_device) != 0) { - input_exit(); - return -1; - } - udev_device_unref(udev_device); - } - udev_enumerate_unref(enumerate); - - if (monitor_client_add(eventlircd_input.udev.fd, &input_handler, NULL) != 0) { - input_exit(); - return -1; - } - - return 0; -} diff -Nru eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/input.h.svn-base eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/input.h.svn-base --- eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/input.h.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/input.h.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2009-2010 Paul Bender. - * - * This file is part of eventlircd. - * - * eventlircd is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * eventlircd is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with eventlircd. If not, see . - */ -#ifndef _EVENTLIRCD_INPUT_H_ -#define _EVENTLIRCD_INPUT_H_ 1 - -int input_init(const char* evmap_dir, const bool repeat_filter); -int input_exit(); - -#endif diff -Nru eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/lircd.c.svn-base eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/lircd.c.svn-base --- eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/lircd.c.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/lircd.c.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,351 +0,0 @@ -/* - * Copyright (C) 2009-2010 Paul Bender. - * - * This file is part of eventlircd. - * - * eventlircd is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * eventlircd is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with eventlircd. If not, see . - */ - -/* - * Single Unix Specification Version 3 headers. - */ -#include /* C89 */ -#include /* POSIX */ -#include /* C89 */ -#include /* C89 */ -#include /* POSIX */ -#include /* POSIX */ -#include /* POSIX */ -#include /* XSI */ -#include /* XSI */ -#include /* POSIX */ -/* - * Linux header files. - */ -#include /* */ -#include /* */ -/* - * eventlircd headers. - */ -#include "lircd.h" -#include "monitor.h" - -/* - * The lircd_handler does not use the id parameter, so we need to let gcc's - * -Wused know that it is ok. - */ -#ifdef UNUSED -# error cannot define UNUSED because it is already defined -#endif -#if defined(__GNUC__) -# define UNUSED(x) x __attribute__((unused)) -#else -# define UNUSED(x) x -#endif - -/* - * The 'lircd' structure contains the information associated with the lircd - * socket. In particular, it contains a linked list of 'lircd_client' - * structures, each of which contains information associated with one connected - * lirc client. - */ -struct lircd_client { - int fd; - struct lircd_client *next; -}; - -struct { - int fd; - char *path; - mode_t mode; - char *release_suffix; - struct lircd_client *client_list; -} eventlircd_lircd = { - .fd = -1, - .path = NULL, - .mode = 0, - .release_suffix = NULL, - .client_list = NULL -}; - -static int lircd_client_add() -{ - struct lircd_client *client; - int flags; - - if (eventlircd_lircd.fd == -1) { - return -1; - } - - if ((client = (struct lircd_client *)malloc(sizeof(struct lircd_client))) == NULL) { - syslog(LOG_ERR, - "failed to allocate memory for lircd client: %s\n", - strerror(errno)); - return -1; - } - - client->fd = accept(eventlircd_lircd.fd, NULL, NULL); - - if (client->fd < 0) { - syslog(LOG_ERR, - "error during accept(): %s", - strerror(errno)); - free(client); - return -1; - } - - flags = fcntl(client->fd, F_GETFL); - fcntl(client->fd, F_SETFL, flags | O_NONBLOCK); - - client->next = eventlircd_lircd.client_list; - eventlircd_lircd.client_list = client; - - return 0; -} - -static int lircd_handler(void* UNUSED(id)) -{ - if (lircd_client_add() != 0) { - return -1; - } - - return 0; -} - -static int lircd_client_close(struct lircd_client *client) -{ - if (client == NULL) { - return -1; - } - - if (client->fd >= 0) { - shutdown(client->fd, 2); - close(client->fd); - client->fd = -1; - } - - return 0; -} - -static int lircd_client_purge() -{ - struct lircd_client **client_ptr; - struct lircd_client *client; - int return_code; - - return_code = 0; - - client_ptr = &(eventlircd_lircd.client_list); - while (*client_ptr != NULL) { - client = *client_ptr; - if (client->fd == -1) { - *client_ptr = client->next; - if (lircd_client_close(client) != 0) { - return_code = -1; - } - free(client); - } else { - client_ptr = &((*client_ptr)->next); - } - } - return return_code; -} - -int lircd_exit() -{ - struct lircd_client *client; - int return_code; - - return_code = 0; - - if (eventlircd_lircd.fd >= 0) { - if (monitor_client_remove(eventlircd_lircd.fd) != 0) { - return_code = -1; - } - close(eventlircd_lircd.fd); - eventlircd_lircd.fd = -1; - } - - for (client = eventlircd_lircd.client_list ; client != NULL ; client = client->next) { - if (lircd_client_close(client) != 0) { - return_code = -1; - } - } - if (lircd_client_purge() != 0) { - return_code = -1; - } - - if (eventlircd_lircd.path != NULL) { - unlink(eventlircd_lircd.path); - free(eventlircd_lircd.path); - eventlircd_lircd.path = NULL; - } - - return return_code; -} - -int lircd_init(const char *path, mode_t mode, const char *release_suffix) -{ - struct sockaddr_un addr; - - eventlircd_lircd.fd = -1; - eventlircd_lircd.path = NULL; - eventlircd_lircd.mode = 0; - eventlircd_lircd.release_suffix = NULL; - eventlircd_lircd.client_list = NULL; - - if (path == NULL) { - errno = EINVAL; - return -1; - } - - if (strnlen(path, PATH_MAX + 1) >= PATH_MAX + 1) { - errno = ENAMETOOLONG; - syslog(LOG_ERR, - "lircd socket path: %s\n", - strerror(errno)); - return -1; - } - - if ((eventlircd_lircd.path = strndup(path, PATH_MAX)) == NULL) { - syslog(LOG_ERR, - "failed to allocate memory for the lircd device %s: %s\n", - path, - strerror(errno)); - lircd_exit(); - return -1; - } - - eventlircd_lircd.mode = mode; - - if (release_suffix != NULL) { - if ((eventlircd_lircd.release_suffix = strndup(release_suffix, 128)) == NULL) { - syslog(LOG_ERR, - "failed to allocate memory for the lircd device %s: %s\n", - path, - strerror(errno)); - lircd_exit(); - return -1; - } - } - - if (unlink(eventlircd_lircd.path) != 0) { - if (errno != ENOENT) { - syslog(LOG_ERR, - "failed to remove existing lircd socket %s: %s\n", - path, - strerror(errno)); - lircd_exit(); - return -1; - } - } - - eventlircd_lircd.fd = socket(AF_UNIX, SOCK_STREAM, 0); - if (eventlircd_lircd.fd < 0) { - syslog(LOG_ERR, - "failed to create Unix socket for lircd output: %s\n", - strerror(errno)); - lircd_exit(); - return -1; - } - - addr.sun_family = AF_UNIX; - strcpy(addr.sun_path, eventlircd_lircd.path); - if(bind(eventlircd_lircd.fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) { - syslog(LOG_ERR, - "failed to bind to Unix socket needed for lircd output; %s\n", - strerror(errno)); - lircd_exit(); - return -1; - } - - chmod(eventlircd_lircd.path, mode); - - if (listen(eventlircd_lircd.fd, 3) < 0) { - syslog(LOG_ERR, - "failed to listen on Unix socket needed for lircd output: %s\n", - strerror(errno)); - lircd_exit(); - return -1; - } - - if (monitor_client_add(eventlircd_lircd.fd, &lircd_handler, NULL) != 0) { - syslog(LOG_ERR, - "failed to add lircd to the monitor client list: %s\n", - strerror(errno)); - lircd_exit(); - return -1; - } - - return 0; -} - -int lircd_send(const struct input_event *event, const char *name, unsigned int repeat_count, const char *remote) -{ - char message[1000]; - int message_len; - struct lircd_client *client; - - if (event == NULL) { - errno = EINVAL; - return -1; - } - if (name == NULL) { - errno = EINVAL; - return -1; - } - if (remote == NULL) { - errno = EINVAL; - return -1; - } - - if ((event->value == 0) && (eventlircd_lircd.release_suffix == NULL)) { - return 0; - } - - /* - * If this is a key release, so append the key release suffix. - */ - if (event->value == 0) { - message_len = snprintf(message, - sizeof message, - "%x %x %s%s %s\n", - (unsigned int)event->code, - repeat_count, - name, - eventlircd_lircd.release_suffix, - remote); - } else { - message_len = snprintf(message, sizeof message, "%x %x %s %s\n", - (unsigned int)event->code, - repeat_count, - name, - remote); - } - - if (message_len > 0) { - for(client = eventlircd_lircd.client_list ; client != NULL ; client = client->next) { - if (write(client->fd, message, (size_t)message_len) != (ssize_t)message_len) { - if (lircd_client_close(client) != 0) { - return -1; - } - } - } - if (lircd_client_purge() != 0) { - return -1; - } - } - - return 0; -} diff -Nru eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/lircd.h.svn-base eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/lircd.h.svn-base --- eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/lircd.h.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/lircd.h.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2009-2010 Paul Bender. - * - * This file is part of eventlircd. - * - * eventlircd is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * eventlircd is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with eventlircd. If not, see . - */ -#ifndef _EVENTLIRCD_LIRCD_H_ -#define _EVENTLIRCD_LIRCD_H_ 1 - -/* - * Single Unix Specification Version 3 headers. - */ -#include /* POSIX */ -/* - * Linux headers. - */ -#include /* */ - -int lircd_init(const char *path, mode_t mode, const char *release_suffix); -int lircd_exit(); -int lircd_send(const struct input_event *event, const char *name, unsigned int repeat_count, const char *remote); - -#endif diff -Nru eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/main.c.svn-base eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/main.c.svn-base --- eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/main.c.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/main.c.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,198 +0,0 @@ -/* - * Copyright (C) 2009-2010 Paul Bender. - * - * This file is part of eventlircd. - * - * eventlircd is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * eventlircd is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with eventlircd. If not, see . - */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -/* - * Single Unix Specification Version 3 headers. - */ -#include /* C89 */ -#include /* C99 */ -#include /* C89 */ -#include /* C89 */ -#include /* C89 */ -#include /* POSIX */ -#include /* XSI */ -#include /* POSIX */ -/* - * Misc headers. - */ -#include -#include -/* - * eventlircd headers. - */ -#include "input.h" -#include "lircd.h" -#include "monitor.h" - -int main(int argc,char **argv) -{ - static struct option longopts[] = - { - {"help",no_argument,NULL,'h'}, - {"version",no_argument,NULL,'V'}, - {"verbose",no_argument,NULL,'v'}, - {"foreground",no_argument,NULL,'f'}, - {"evmap",required_argument,NULL,'e'}, - {"socket",required_argument,NULL,'s'}, - {"mode",required_argument,NULL,'m'}, - {"process",required_argument,NULL,'p'}, - {"repeat-filter",no_argument,NULL,'R'}, - {"release",required_argument,NULL,'r'}, - {0, 0, 0, 0} - }; - const char *progname = NULL; - int verbose = 0; - bool foreground = false; - const char *input_device_evmap_dir = EVMAP_DIR; - const char *lircd_socket_path = LIRCD_SOCKET; - mode_t lircd_socket_mode = S_IWUSR | S_IRUSR | S_IWGRP | S_IRGRP | S_IWOTH | S_IROTH; - bool input_repeat_filter = false; - const char *lircd_release_suffix = NULL; - int opt; - - for (progname = argv[0] ; strchr(progname, '/') != NULL ; progname = strchr(progname, '/') + 1); - - openlog(progname, LOG_CONS | LOG_PERROR | LOG_PID, LOG_DAEMON); - - while((opt = getopt_long(argc, argv, "hVvfe:s:m:r:", longopts, NULL)) != -1) - { - switch(opt) - { - case 'h': - fprintf(stdout, "Usage: %s [options]\n", progname); - fprintf(stdout, " -h --help print this help message and exit\n"); - fprintf(stdout, " -V --version print the program version and exit\n"); - fprintf(stdout, " -v --verbose increase the output message verbosity (-v, -vv or -vvv)\n"); - fprintf(stdout, " -f --foreground run in the foreground\n"); - fprintf(stdout, " -e --evmap= directory containing input device event map files (default is '%s')\n", - input_device_evmap_dir); - fprintf(stdout, " -s --socket= lircd socket (default is '%s')\n", - lircd_socket_path); - fprintf(stdout, " -m --mode= lircd socket mode (default is '%04o')\n", - lircd_socket_mode); - fprintf(stdout, " -R --repeat-filter enable repeat filtering (default is '%s')\n", - input_repeat_filter ? "false" : "true"); - fprintf(stdout, " -r --release= generate key release events suffixed with \n"); - exit(EX_OK); - break; - case 'V': - fprintf(stdout, PACKAGE_STRING "\n"); - break; - case 'v': - if (verbose < 3) - { - verbose++; - } - else - { - syslog(LOG_WARNING, "the highest verbosity level is -vvv\n"); - } - case 'f': - foreground = true; - break; - case 'e': - input_device_evmap_dir = optarg; - break; - case 's': - lircd_socket_path = optarg; - break; - case 'm': - lircd_socket_mode = (mode_t)atol(optarg); - break; - case 'R': - input_repeat_filter = true; - break; - case 'r': - lircd_release_suffix = optarg; - break; - default: - fprintf(stderr, "error: unknown option: %c\n", opt); - exit(EX_USAGE); - } - } - - if (verbose == 0) - { - setlogmask(0 | LOG_DEBUG | LOG_INFO | LOG_NOTICE); - } - else if (verbose == 1) - { - setlogmask(0 | LOG_DEBUG | LOG_INFO); - } - else if (verbose == 2) - { - setlogmask(0 | LOG_DEBUG); - } - else - { - setlogmask(0); - } - - signal(SIGPIPE, SIG_IGN); - - if (monitor_init() != 0) - { - exit(EXIT_FAILURE); - } - - /* Initialize the lircd socket before daemonizing in order to ensure that programs - started after it damonizes will have an lircd socket with which to connect. */ - if (lircd_init(lircd_socket_path, lircd_socket_mode, lircd_release_suffix) != 0) - { - monitor_exit(); - exit(EXIT_FAILURE); - } - - if (foreground != true) - { - daemon(0, 0); - } - - if (input_init(input_device_evmap_dir, input_repeat_filter) != 0) - { - monitor_exit(); - lircd_exit(); - exit(EXIT_FAILURE); - } - - monitor_run(); - - if (input_exit() != 0) - { - monitor_exit(); - lircd_exit(); - exit(EXIT_FAILURE); - } - - if (lircd_exit() != 0) - { - monitor_exit(); - exit(EXIT_FAILURE); - } - - if (monitor_exit() != 0) - { - exit(EXIT_FAILURE); - } - - exit(EXIT_SUCCESS); -} diff -Nru eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/Makefile.am.svn-base eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/Makefile.am.svn-base --- eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/Makefile.am.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/Makefile.am.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -sbin_PROGRAMS = eventlircd -eventlircd_SOURCES = main.c monitor.c monitor.h input.c input.h lircd.c lircd.h -eventlircd_CFLAGS = $(AM_CFLAGS) $(LIBUDEV_CFLAGS) -DLIRCD_SOCKET=\"$(LIRCD_SOCKET)\" -DEVMAP_DIR=\"$(EVMAP_DIR)\" -eventlircd_LDFLAGS = $(AM_CFLAGS) $(LIBUDEV_LIBS) - -nodist_eventlircd_SOURCES = event_name_to_code.h evkey_code_to_name.h evkey_type.h - -event_name_to_code.h: event_name_to_code.h.sh $(ABSOLUTE_LINUX_INPUT_H) - sh event_name_to_code.h.sh - -evkey_code_to_name.h: evkey_code_to_name.h.sh $(ABSOLUTE_LINUX_INPUT_H) - sh evkey_code_to_name.h.sh - -evkey_type.h: evkey_type.h.sh $(ABSOLUTE_LINUX_INPUT_H) - sh evkey_type.h.sh - -input.c: event_name_to_code.h evkey_code_to_name.h evkey_type.h diff -Nru eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/monitor.c.svn-base eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/monitor.c.svn-base --- eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/monitor.c.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/monitor.c.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,234 +0,0 @@ -/* - * Copyright (C) 2009-2010 Paul Bender. - * - * This file is part of eventlircd. - * - * eventlircd is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * eventlircd is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with eventlircd. If not, see . - */ - -/* - * Single Unix Specification Version 3 headers. - */ -#include /* C89 */ -#include /* C89 */ -#include /* C99 */ -#include /* C89 */ -#include /* C89 */ -#include /* C89 */ -#include /* POSIX */ -#include /* POSIX */ -#include /* XSI */ -/* - * eventlircd headers. - */ -#include "input.h" -#include "lircd.h" -#include "monitor.h" - -struct monitor_client { - int fd; - int (*handler)(void *id); - void *id; - struct monitor_client *next; -}; - -struct { - struct monitor_client *client_list; -} eventlircd_monitor = { - .client_list = NULL -}; - -static bool monitor_sigterm_active = false; -static int monitor_sigterm_signal = 0; - -static int monitor_client_close(struct monitor_client *client) -{ - if (client == NULL) { - errno = EINVAL; - return -1; - } - - client->fd = -1; - client->handler = NULL; - client->id = NULL; - - return 0; -} - -static int monitor_client_purge() -{ - struct monitor_client **client_ptr; - struct monitor_client *client; - int return_code; - - return_code = 0; - - client_ptr = &(eventlircd_monitor.client_list); - while (*client_ptr != NULL) { - client = *client_ptr; - if (client->fd == -1) { - *client_ptr = client->next; - if (monitor_client_close(client) != 0) { - free(client); - return_code = -1; - } - } else { - client_ptr = &((*client_ptr)->next); - } - } - - return return_code; -} - -int monitor_client_remove(int fd) -{ - struct monitor_client *client; - int return_code; - - return_code = 0; - - for (client = eventlircd_monitor.client_list ; client != NULL ; client = client->next) { - if (client->fd == fd) { - if (monitor_client_close(client) != 0) { - return_code = -1; - } - } - } - if (monitor_client_purge() != 0) { - return_code = -1; - } - - return return_code; -} - -int monitor_client_add(int fd, int (*handler)(void *id), void *id) -{ - struct monitor_client *client; - - if (fd < 0) { - errno = EINVAL; - return -1; - } - if (handler == NULL) { - errno = EINVAL; - return -1; - } - - if ((client = (struct monitor_client *)malloc(sizeof(struct monitor_client))) == NULL) { - syslog(LOG_ERR, - "failed to allocate memory for monitor client: %s\n", - strerror(errno)); - return -1; - } - - client->fd = fd; - client->handler = handler; - client->id = id; - - client->next = eventlircd_monitor.client_list; - eventlircd_monitor.client_list = client; - - return 0; -} - -int monitor_exit() -{ - struct monitor_client *client; - int return_code; - - return_code = 0; - - for (client = eventlircd_monitor.client_list ; client != NULL ; client = client->next) { - if (monitor_client_close(client) != 0) { - return_code = -1; - } - } - if (monitor_client_purge() != 0) { - return_code = -1; - } - - return return_code; -} - -int monitor_init() -{ - eventlircd_monitor.client_list = NULL; - - return 0; -} - -static void monitor_sigterm_handler(int signal) -{ - if (monitor_sigterm_active == true) { - return; - } - monitor_sigterm_active = true; - monitor_sigterm_signal = signal; -} - -int monitor_run() -{ - struct sigaction signal_action; - struct monitor_client *client; - fd_set fdset; - int nfds; - - signal_action.sa_handler = monitor_sigterm_handler; - sigfillset(&signal_action.sa_mask); - signal_action.sa_flags=SA_RESTART; - sigaction(SIGTERM, &signal_action, NULL); - sigaction(SIGINT, &signal_action, NULL); - - while (true) { - if (monitor_sigterm_active == true) { - input_exit(); - lircd_exit(); - monitor_exit(); - signal(monitor_sigterm_signal, SIG_DFL); - raise(monitor_sigterm_signal); - return 0; - } - - FD_ZERO(&fdset); - nfds = 0; - for (client = eventlircd_monitor.client_list ; client != NULL ; client = client->next) { - if (client->fd < 0) { - continue; - } - FD_SET(client->fd, &fdset); - if (nfds < client->fd) { - nfds = client->fd; - } - } - nfds++; - - if (select(nfds, &fdset, NULL, NULL, NULL) < 0) { - if (errno == EINTR) { - continue; - } - return -1; - } - - for (client = eventlircd_monitor.client_list ; client != NULL ; client = client->next) { - if (client->fd == -1) { - continue; - } - if (FD_ISSET(client->fd, &fdset) == 0) { - continue; - } - client->handler(client->id); - } - } - return 0; -} diff -Nru eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/monitor.h.svn-base eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/monitor.h.svn-base --- eventlircd-0.0.1+svn20110129.2130/src/.svn/text-base/monitor.h.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/src/.svn/text-base/monitor.h.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -/* - * Copyright (C) 2009-2010 Paul Bender. - * - * This file is part of eventlircd. - * - * eventlircd is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * eventlircd is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with eventlircd. If not, see . - */ -#ifndef _EVENTLIRCD_MONITOR_H_ -#define _EVENTLIRCD_MONITOR_H_ 1 - -int monitor_init(); -int monitor_exit(); -int monitor_client_add(int fd, int (*handler)(void *id), void *id); -int monitor_client_remove(int fd); -int monitor_run(); - -#endif diff -Nru eventlircd-0.0.1+svn20110129.2130/.svn/all-wcprops eventlircd-0.0.1+svn20110409.0930/.svn/all-wcprops --- eventlircd-0.0.1+svn20110129.2130/.svn/all-wcprops 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/.svn/all-wcprops 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 22 -/svn/!svn/ver/41/trunk -END -configure.ac -K 25 -svn:wc:ra_dav:version-url -V 35 -/svn/!svn/ver/35/trunk/configure.ac -END -AUTHORS -K 25 -svn:wc:ra_dav:version-url -V 29 -/svn/!svn/ver/2/trunk/AUTHORS -END -ChangeLog -K 25 -svn:wc:ra_dav:version-url -V 31 -/svn/!svn/ver/2/trunk/ChangeLog -END -COPYING -K 25 -svn:wc:ra_dav:version-url -V 29 -/svn/!svn/ver/2/trunk/COPYING -END -Makefile.am -K 25 -svn:wc:ra_dav:version-url -V 33 -/svn/!svn/ver/2/trunk/Makefile.am -END -NEWS -K 25 -svn:wc:ra_dav:version-url -V 26 -/svn/!svn/ver/2/trunk/NEWS -END -README -K 25 -svn:wc:ra_dav:version-url -V 29 -/svn/!svn/ver/26/trunk/README -END diff -Nru eventlircd-0.0.1+svn20110129.2130/.svn/entries eventlircd-0.0.1+svn20110409.0930/.svn/entries --- eventlircd-0.0.1+svn20110129.2130/.svn/entries 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/.svn/entries 1970-01-01 00:00:00.000000000 +0000 @@ -1,281 +0,0 @@ -10 - -dir -41 -http://eventlircd.googlecode.com/svn/trunk -http://eventlircd.googlecode.com/svn - - - -2010-12-31T19:36:00.225512Z -41 -pebender - - - - - - - - - - - - - - -bd17559c-f4b9-11de-82c3-25da7dca7fdf - -m4 -dir - -udev -dir - -configure.ac -file - - - - -2011-01-29T16:45:12.533538Z -3a41ca1dcf23e5882b2f815a817a7919 -2010-11-03T14:29:52.733118Z -35 -pebender - - - - - - - - - - - - - - - - - - - - - -8078 - -AUTHORS -file - - - - -2011-01-29T16:45:12.533538Z -943ab08523f854edb71061ebd2aa1f14 -2009-12-29T20:42:29.398738Z -2 -pebender - - - - - - - - - - - - - - - - - - - - - -12 - -src -dir - -ChangeLog -file - - - - -2011-01-29T16:45:12.533538Z -d41d8cd98f00b204e9800998ecf8427e -2009-12-29T20:42:29.398738Z -2 -pebender - - - - - - - - - - - - - - - - - - - - - -0 - -COPYING -file - - - - -2011-01-29T16:45:12.536905Z -751419260aa954499f7abaabaa882bbe -2009-12-29T20:42:29.398738Z -2 -pebender - - - - - - - - - - - - - - - - - - - - - -17987 - -Makefile.am -file - - - - -2011-01-29T16:45:12.536905Z -ab12d95b7ec6c11dcb0776c28b685db1 -2009-12-29T20:42:29.398738Z -2 -pebender - - - - - - - - - - - - - - - - - - - - - -52 - -man -dir - -etc -dir - -NEWS -file - - - - -2011-01-29T16:45:12.536905Z -d41d8cd98f00b204e9800998ecf8427e -2009-12-29T20:42:29.398738Z -2 -pebender - - - - - - - - - - - - - - - - - - - - - -0 - -README -file - - - - -2011-01-29T16:45:12.536905Z -b6cfddb19b46370ffdd8ad54eb1a7c55 -2010-10-02T19:21:08.049628Z -26 -pebender - - - - - - - - - - - - - - - - - - - - - -1725 - diff -Nru eventlircd-0.0.1+svn20110129.2130/.svn/text-base/AUTHORS.svn-base eventlircd-0.0.1+svn20110409.0930/.svn/text-base/AUTHORS.svn-base --- eventlircd-0.0.1+svn20110129.2130/.svn/text-base/AUTHORS.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/.svn/text-base/AUTHORS.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Paul Bender diff -Nru eventlircd-0.0.1+svn20110129.2130/.svn/text-base/configure.ac.svn-base eventlircd-0.0.1+svn20110409.0930/.svn/text-base/configure.ac.svn-base --- eventlircd-0.0.1+svn20110129.2130/.svn/text-base/configure.ac.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/.svn/text-base/configure.ac.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,147 +0,0 @@ -dnl Copyright (C) 2009-2010 Paul Bender. -dnl -dnl This file is part of eventlircd. -dnl -dnl eventlircd is free software: you can redistribute it and/or modify -dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation, either version 2 of the License, or -dnl (at your option) any later version. -dnl -dnl eventlircd is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -dnl GNU General Public License for more details. -dnl -dnl You should have received a copy of the GNU General Public License -dnl along with eventlircd. If not, see . - -AC_INIT([eventlircd], [0.0.0]) - -AC_PREREQ([2.63]) - -AC_CONFIG_SRCDIR([src/main.c]) -AC_CONFIG_AUX_DIR([build-aux]) -AC_CONFIG_MACRO_DIR([m4]) - -AM_INIT_AUTOMAKE([gnu dist-bzip2]) - -AC_PREFIX_DEFAULT([/usr]) - -AM_SILENT_RULES - -AC_PROG_CC -AC_PROG_CC_C99 -AM_PROG_CC_C_O -AC_PROG_AWK -AC_PROG_GREP -AC_PROG_SED -AC_PROG_INSTALL - -dnl The program makes use of some C99 features such as stdbool.h -if test "x$ac_cv_prog_cc_c99" = "xno" ; then - AC_MSG_ERROR([the compiler is not C99 compliant]) -fi - -dnl ${AWK} must support the '--non-decimal-data' option because -dnl evkey_code_to_name.h.sh and evkey_type.h use ${AWK} to process the evkey -dnl defines in linux/input.h some of which are hexidecimal rather than decimal. -if ! ${AWK} --non-decimal-data "" > /dev/null 2>&1 ; then - AC_MSG_ERROR([${AWK} does not support the command line argument '--non-decimal-data']) -fi - -PKG_PROG_PKG_CONFIG - -AC_HEADER_STDC -AC_HEADER_STDBOOL -AC_HEADER_TIME - -dnl -dnl Fine grain header checks. This is overkill, but better safe than sorry. -dnl -dnl Single Unix Specification Version 3 headers. -AC_CHECK_HEADER([errno.h],[],[AC_MSG_ERROR([failed to find the required header file errno.h])]) dnl C89 -AC_CHECK_HEADER([fcntl.h],[],[AC_MSG_ERROR([failed to find the required header file fcntl.h])]) dnl POSIX -AC_CHECK_HEADER([signal.h],[],[AC_MSG_ERROR([failed to find the required header file signal.h])]) dnl C89 -AC_CHECK_HEADER([stdbool.h],[],[AC_MSG_ERROR([failed to find the required header file stdbool.h])]) dnl C99 -AC_CHECK_HEADER([stddef.h],[],[AC_MSG_ERROR([failed to find the required header file stddef.h])]) dnl C89 -AC_CHECK_HEADER([stdint.h],[],[AC_MSG_ERROR([failed to find the required header file stdint.h])]) dnl POSIX -AC_CHECK_HEADER([stdio.h],[],[AC_MSG_ERROR([failed to find the required header file stdio.h])]) dnl C89 -AC_CHECK_HEADER([stdlib.h],[],[AC_MSG_ERROR([failed to find the required header file stdlib.h])]) dnl C89 -AC_CHECK_HEADER([string.h],[],[AC_MSG_ERROR([failed to find the required header file string.h])]) dnl C89 -AC_CHECK_HEADER([sys/select.h],[],[AC_MSG_ERROR([failed to find the required header file sys/select.h])]) dnl POSIX -AC_CHECK_HEADER([sys/socket.h],[],[AC_MSG_ERROR([failed to find the required header file sys/socket.h])]) dnl POSIX -AC_CHECK_HEADER([sys/stat.h],[],[AC_MSG_ERROR([failed to find the required header file sys/stat.h])]) dnl POSIX -AC_CHECK_HEADER([sys/time.h],[],[AC_MSG_ERROR([failed to find the required header file sys/time.h])]) dnl POSIX -AC_CHECK_HEADER([sys/types.h],[],[AC_MSG_ERROR([failed to find the required header file sys/types.h])]) dnl POSIX -AC_CHECK_HEADER([sys/un.h],[],[AC_MSG_ERROR([failed to find the required header file sys/un.h])]) dnl XSI -AC_CHECK_HEADER([syslog.h],[],[AC_MSG_ERROR([failed to find the required header file syslog.h])]) dnl XSI -AC_CHECK_HEADER([unistd.h],[],[AC_MSG_ERROR([failed to find the required header file unistd.h])]) dnl POSIX -dnl Misc headers. -AC_CHECK_HEADER([getopt.h],[],[AC_MSG_ERROR([failed to find the required header file getopt.h])]) -AC_CHECK_HEADER([sysexits.h],[],[AC_MSG_ERROR([failed to find the required header file sysexits.h])]) -dnl Linux headers. -AC_CHECK_HEADER([linux/input.h],[],[AC_MSG_ERROR([failed to find the required header file linux/input.h])]) dnl -AC_CHECK_HEADER([linux/limits.h],[],[AC_MSG_ERROR([failed to find the required header file linux/limits.h])]) dnl -AC_CHECK_HEADER([linux/types.h],[],[AC_MSG_ERROR([failed to find the required header file linux/types.h])]) dnl -AC_CHECK_HEADER([linux/uinput.h],[],[AC_MSG_ERROR([failed to find the required header file linux/uinput.h])]) dnl -dnl libudev headers. -AC_CHECK_HEADER([libudev.h],[],[AC_MSG_ERROR([failed to find the required header file libudev.h])]) - -dnl The absolute path to the header file linux/input.h is needed by -dnl event_name_to_code.h.sh, evkey_code_to_name.h.sh and evkey_type.h.sh -dnl in order for them to generate the header files event_name_to_code.h, -dnl evkey_code_to_name.h and evkey_type.h respectively -AX_ABSOLUTE_HEADER(linux/input.h) -if test "x$gl_cv_absolute_linux_input_h" = "x" ; then - AC_MSG_ERROR([failed to find the absolute path to header file linux/input.h]) -fi -AC_SUBST(ABSOLUTE_LINUX_INPUT_H, $gl_cv_absolute_linux_input_h) - -PKG_CHECK_MODULES(LIBUDEV, [libudev >= 136]) - -AC_ARG_WITH(lircd-socket, AS_HELP_STRING([--with-lircd-socket=SOCKET], [lircd socket @<:@LOCALSTATEDIR/run/lirc/lircd@:>@]), - [LIRCD_SOCKET="$withval"], - [LIRCD_SOCKET="${localstatedir}/run/lirc/lircd"]) -AC_SUBST(LIRCD_SOCKET) - -AC_ARG_WITH(evmap-dir, AS_HELP_STRING([--with-evmap-dir=DIR], [event map directory @<:@SYSCONFDIR/eventlircd.d@:>@]), - [EVMAP_DIR="$withval"], - [EVMAP_DIR="${sysconfdir}/eventlircd.d"]) -AC_SUBST(EVMAP_DIR) - -AC_ARG_WITH(udev-dir, AS_HELP_STRING([--with-udev-dir=DIR], [udev directory @<:@/lib/udev@:>@]), - [UDEV_DIR="$withval"], - [UDEV_DIR="/lib/udev"]) -AC_SUBST(UDEV_DIR) - -dnl Only add an optimization flag when one is not already present. -if ! echo " ${CC} ${CFLAGS} " | ${GREP} ' -O@<:@^ @:>@* ' > /dev/null ; then - AX_C_CHECK_FLAG([-O2],[],[],[CFLAGS="$CFLAGS -O2"],[]) -fi -AX_C_CHECK_FLAG([-pedantic],[],[],[CFLAGS="$CFLAGS -pedantic"],[]) -AX_C_CHECK_FLAG([-flto],[],[],[CFLAGS="$CFLAGS -flto"],[]) -AX_C_CHECK_FLAG([-fvisibility=hidden],[],[],[CFLAGS="$CFLAGS -fvisibility=hidden"],[]) -AX_C_CHECK_FLAG([-Werror],[],[],[CFLAGS="$CFLAGS -Werror"],[]) -AX_C_CHECK_FLAG([-Wall],[],[],[CFLAGS="$CFLAGS -Wall"],[]) -AX_C_CHECK_FLAG([-Wextra],[],[],[CFLAGS="$CFLAGS -Wextra"],[]) -AX_C_CHECK_FLAG([-Wcast-qual],[],[],[CFLAGS="$CFLAGS -Wcast-qual"],[]) -dnl This flag is commented out because is causes compilation to fail due to -dnl questionable implicit conversions in some Linux and glibc header files. -dnl AX_C_CHECK_FLAG([-Wconversion],[],[],[CFLAGS="$CFLAGS -Wconversion"],[]) -AX_C_CHECK_FLAG([-Wfloat-equal],[],[],[CFLAGS="$CFLAGS -Wfloat-equal"],[]) -AX_C_CHECK_FLAG([-Wformat=2],[],[],[CFLAGS="$CFLAGS -Wformat=2"],[]) -AX_C_CHECK_FLAG([-Winit-self],[],[],[CFLAGS="$CFLAGS -Winit-self"],[]) -AX_C_CHECK_FLAG([-Wmissing-include-dirs],[],[],[CFLAGS="$CFLAGS -Wmissing-include-dirs"],[]) -AX_C_CHECK_FLAG([-Wshadow],[],[],[CFLAGS="$CFLAGS "],[-Wshadow]) -AX_C_CHECK_FLAG([-Wstrict-overflow=5],[],[],[CFLAGS="$CFLAGS -Wstrict-overflow=5"],[]) -AX_C_CHECK_FLAG([-Wundef],[],[],[CFLAGS="$CFLAGS -Wundef"],[]) -AX_LD_CHECK_FLAG([-flto],[],[],[LDFLAGS="$LDFLAGS -flto"],[]) -AX_LD_CHECK_FLAG([-fuse-ld=gold],[],[],[LDFLAGS="$LDFLAGS -fuse-ld=gold"],[]) -AX_LD_CHECK_FLAG([-fuse-linker-plugin],[],[],[LDFLAGS="$LDFLAGS -fuse-linker-plugin"],[]) -AX_LD_CHECK_FLAG([-fwhole-program],[],[],[LDFLAGS="$LDFLAGS -fwhole-program"],[]) -AX_LD_CHECK_FLAG([-fvisibility=hidden],[],[],[LDFLAGS="$LDFLAGS -fvisibility=hidden"],[]) -AX_LD_CHECK_FLAG([-Wl,--as-needed],[],[],[LDFLAGS="$LDFLAGS -Wl,--as-needed"],[]) - -AC_CONFIG_HEADERS([src/config.h]) -AC_CONFIG_FILES([Makefile etc/Makefile man/Makefile man/eventlircd.8 man/eventlircd.evmap.5 src/Makefile src/event_name_to_code.h.sh src/evkey_code_to_name.h.sh src/evkey_type.h.sh udev/Makefile udev/lircd_helper udev/wakeup_enable udev/rules.d/98-lircd.rules.disabled udev/rules.d/98-eventlircd.rules.disabled]) -AC_OUTPUT diff -Nru eventlircd-0.0.1+svn20110129.2130/.svn/text-base/COPYING.svn-base eventlircd-0.0.1+svn20110409.0930/.svn/text-base/COPYING.svn-base --- eventlircd-0.0.1+svn20110129.2130/.svn/text-base/COPYING.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/.svn/text-base/COPYING.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff -Nru eventlircd-0.0.1+svn20110129.2130/.svn/text-base/Makefile.am.svn-base eventlircd-0.0.1+svn20110409.0930/.svn/text-base/Makefile.am.svn-base --- eventlircd-0.0.1+svn20110129.2130/.svn/text-base/Makefile.am.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/.svn/text-base/Makefile.am.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -ACLOCAL_AMFLAGS = -I m4 - -SUBDIRS = etc man src udev diff -Nru eventlircd-0.0.1+svn20110129.2130/.svn/text-base/README.svn-base eventlircd-0.0.1+svn20110409.0930/.svn/text-base/README.svn-base --- eventlircd-0.0.1+svn20110129.2130/.svn/text-base/README.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/.svn/text-base/README.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -This daemon was inspired by - - Christoph Bartelmus's lircd daemon - , - - Guus Sliepen's inputlircd daemon - , and - - Julien Cristau's Xorg udev patch - . - -The software's architecture is straight forward. At the center is monitor, which -monitors a list of file descriptors and calls the file descriptor's handler when -the file descriptor is "ready". Initially, lircd creates an lircd socket and -adds it to monitor's file descriptor list so that it can watch for lircd client -connection requests, and input creates a udev monitor and adds it to monitor's -file descriptor list so that it can watch for input event devices. When lircd -detects an lircd client connect request, it connects the client and adds it to -its client list so that it can send lircd messages to the client. When input -detects an input event device that is to be handled by eventlircd, it opens the -input device, creates a corresponding mouse/joystick event device (if needed) -and adds the input device to monitor's file descriptor list so that it can watch -for events. When input detects an event on one of its input devices, it performs -the key mapping and sends the resulting mapped event to either the lircd clients -or the input device's mouse/joystick event device depending on whether the -mapped event is a keyboard or mouse/joystick event. - -The daemon (eventlircd) is a sysvinit daemon. While it should be compatible with -systemd, it is not a systemd daemon. - -The software has no i18n or l10n. - -The comments in the source code are not in doxygen format. - -The comments in the source code are not complete. diff -Nru eventlircd-0.0.1+svn20110129.2130/udev/rules.d/.svn/all-wcprops eventlircd-0.0.1+svn20110409.0930/udev/rules.d/.svn/all-wcprops --- eventlircd-0.0.1+svn20110129.2130/udev/rules.d/.svn/all-wcprops 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/udev/rules.d/.svn/all-wcprops 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 35 -/svn/!svn/ver/40/trunk/udev/rules.d -END -98-lircd.rules.disabled.in -K 25 -svn:wc:ra_dav:version-url -V 61 -/svn/!svn/ver/3/trunk/udev/rules.d/98-lircd.rules.disabled.in -END -98-eventlircd.rules.disabled.in -K 25 -svn:wc:ra_dav:version-url -V 67 -/svn/!svn/ver/40/trunk/udev/rules.d/98-eventlircd.rules.disabled.in -END diff -Nru eventlircd-0.0.1+svn20110129.2130/udev/rules.d/.svn/entries eventlircd-0.0.1+svn20110409.0930/udev/rules.d/.svn/entries --- eventlircd-0.0.1+svn20110129.2130/udev/rules.d/.svn/entries 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/udev/rules.d/.svn/entries 1970-01-01 00:00:00.000000000 +0000 @@ -1,96 +0,0 @@ -10 - -dir -41 -http://eventlircd.googlecode.com/svn/trunk/udev/rules.d -http://eventlircd.googlecode.com/svn - - - -2010-11-25T04:30:10.919045Z -40 -pebender - - - - - - - - - - - - - - -bd17559c-f4b9-11de-82c3-25da7dca7fdf - -98-lircd.rules.disabled.in -file - - - - -2011-01-29T16:45:12.280908Z -9037fc6de1162ded87461f30d335f4d9 -2010-01-08T19:32:25.708683Z -3 -pebender - - - - - - - - - - - - - - - - - - - - - -1772 - -98-eventlircd.rules.disabled.in -file - - - - -2011-01-29T16:45:12.280908Z -e2ced7d4f881cddd3f5cc7ba8fcc3611 -2010-11-25T04:30:10.919045Z -40 -pebender - - - - - - - - - - - - - - - - - - - - - -4398 - diff -Nru eventlircd-0.0.1+svn20110129.2130/udev/rules.d/.svn/text-base/98-eventlircd.rules.disabled.in.svn-base eventlircd-0.0.1+svn20110409.0930/udev/rules.d/.svn/text-base/98-eventlircd.rules.disabled.in.svn-base --- eventlircd-0.0.1+svn20110129.2130/udev/rules.d/.svn/text-base/98-eventlircd.rules.disabled.in.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/udev/rules.d/.svn/text-base/98-eventlircd.rules.disabled.in.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,96 +0,0 @@ -################################################################################ -# An example udev rules file for eventlircd. -# -# This rules file does not start eventlircd. Many applications only check for -# the lircd socket at application lauch. Therefore, it is better to start -# eventlircd in an init script so that eventlircd creates the lircd socket -# before any applications that use LIRC launch. -################################################################################ - -# eventlircd only does something for "add" and "remove" actions. -ACTION!="add|remove", GOTO="end" - -# eventlircd only does something "input" subsystem devices. -SUBSYSTEM!="input", GOTO="end" - -# eventlircd can only handle event devices. -KERNEL!="event[0-9]*", GOTO="end" - -# eventlircd ignores devices created by eventlircd. -ATTRS{name}=="eventlircd", GOTO="end" - -#------------------------------------------------------------------------------- -# Ask eventlircd to handle input event devices created by lircd. For this to -# work, lircd must be configured to output Linux input events and must be -# configured to output key names that conform to the LIRC namespace derived from -# the Linux key/button event names. This rule assumes that lircd performs all -# key mappings, so the rule does not provide a value for "eventlircd_evmap". -# For more information on lircd, see . -#------------------------------------------------------------------------------- -ATTRS{name}=="lircd", \ - ENV{eventlircd_enable}="true" - -#------------------------------------------------------------------------------- -# Ask eventlircd to handle input event devices created by bdremoteng. For this -# to work, bdremoteng must be configured to output Linux input events and must -# be configured to output key names that conform to LIRC namespace derived -# from the Linux key/button event names. For more information on bdremoteng, -# see . -#------------------------------------------------------------------------------- -ATTRS{name}=="bdremoteng", \ - ENV{eventlircd_enable}="true", \ - ENV{eventlircd_evmap}="bdremoteng.evmap" - -#------------------------------------------------------------------------------- -# Ask eventlircd to handle input event devices created by wminput. This rule -# assumes that wminput performs all key mappings, so the rule does not provide a -# value for "eventlircd_evmap" For more information on wminput, see -# . -#------------------------------------------------------------------------------- -ATTRS{name}=="bdremoteng", \ - ENV{eventlircd_enable}="true" - -#------------------------------------------------------------------------------- -# Ask eventlircd to handle input event devices created by ir-core (kernel). -#------------------------------------------------------------------------------- -SUBSYSTEMS=="rc", \ - ENV{eventlircd_enable}="true" - ENV{eventlircd_evmap}="ircore.evmap" - -#------------------------------------------------------------------------------- -# Ask eventlircd to handle USB HID devices that show up as event devices and are -# known to be remote controls. For simplicity, the event map file names have the -# format __.evmap. -#------------------------------------------------------------------------------- -SUBSYSTEMS=="usb", GOTO="begin-usb" -GOTO="end-usb" -LABEL="begin-usb" - -ENV{ID_USB_INTERFACES}=="", IMPORT{program}="usb_id --export %p" - -ENV{ID_VENDOR_ID}=="0419", ENV{ID_MODEL_ID}=="0001", \ - ENV{eventlircd_enable}="true", - ENV{eventlircd_evmap}="03_$env{ID_VENDOR_ID}_$env{ID_MODEL_ID}.evmap" - -ENV{ID_VENDOR_ID}=="05a4", ENV{ID_MODEL_ID}=="9881", \ - ENV{eventlircd_enable}="true", \ - ENV{eventlircd_evmap}="03_$env{ID_VENDOR_ID}_$env{ID_MODEL_ID}.evmap" - -ENV{ID_VENDOR_ID}=="0766", ENV{ID_MODEL_ID}=="0204", \ - ENV{eventlircd_enable}="true", \ - ENV{eventlircd_evmap}="03_$env{ID_VENDOR_ID}_$env{ID_MODEL_ID}.evmap" - -ENV{ID_VENDOR_ID}=="1241", ENV{ID_MODEL_ID}=="e000", \ - ENV{eventlircd_enable}="true", \ - ENV{eventlircd_evmap}="03_$env{ID_VENDOR_ID}_$env{ID_MODEL_ID}.evmap" - -ENV{ID_VENDOR_ID}=="147a", ENV{ID_MODEL_ID}=="e02d", \ - ENV{eventlircd_enable}="true", \ - ENV{eventlircd_evmap}="03_$env{ID_VENDOR_ID}_$env{ID_MODEL_ID}.evmap" - -# Enable wake-on-usb for the USB remotes. -ENV{eventlircd_enable}=="true", RUN+="wakeup_enable" - -LABEL="end-usb" - -LABEL="end" diff -Nru eventlircd-0.0.1+svn20110129.2130/udev/rules.d/.svn/text-base/98-lircd.rules.disabled.in.svn-base eventlircd-0.0.1+svn20110409.0930/udev/rules.d/.svn/text-base/98-lircd.rules.disabled.in.svn-base --- eventlircd-0.0.1+svn20110129.2130/udev/rules.d/.svn/text-base/98-lircd.rules.disabled.in.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/udev/rules.d/.svn/text-base/98-lircd.rules.disabled.in.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -################################################################################ -# An example udev rules file for lircd. -################################################################################ - -# lircd_helper only does something for "add" and "remove" actions. -ACTION!="add|remove", GOTO="end" - -KERNEL=="hiddev[0-9]*", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", GOTO="begin" -KERNEL=="lirc[0-9]*", SUBSYSTEM=="lirc", SUBSYSTEMS=="i2c", GOTO="begin" -KERNEL=="lirc[0-9]*", SUBSYSTEM=="lirc", SUBSYSTEMS=="usb", GOTO="begin" -GOTO="end" -LABEL="begin" - -#------------------------------------------------------------------------------- -# Ask lircd_helper to lirc devices. -#------------------------------------------------------------------------------- -SUBSYSTEM=="lirc", \ - ENV{lircd_driver}="default", \ - ENV{lircd_conf}="@sysconfdir@/lirc/lircd.conf" - -#------------------------------------------------------------------------------- -# Ask lircd_helper to handle USB devices that do not show up as lirc devices -# and are supported by lircd. Remote controls that are USB HID devices that show -# up as event devices are not included as as they are handled by eventlircd. -#------------------------------------------------------------------------------- -SUBSYSTEMS=="usb", GOTO="begin-usb" -SUBSYSTEMS=="usb", GOTO="begin-usb" -GOTO="end-usb" -LABEL="begin-usb" - -ENV{ID_USB_INTERFACES}=="", IMPORT{program}="usb_id --export %p" - -ENV{ID_VENDOR_ID}=="0fe9", ENV{ID_MODEL_ID}=="9010", \ - ENV{lircd_driver}="dvico", \ - ENV{lircd_conf}="@sysconfdir@/lirc/lircd.conf" - -# Enable wake-on-usb for the USB remotes. -ENV{lircd_driver}=="?*", ENV{lircd_conf}=="?*", RUN+="wakeup_enable" - -LABEL="end-usb" - -ENV{lircd_driver}=="?*", ENV{lircd_conf}=="?*", RUN+="lircd_helper" - -LABEL="end" diff -Nru eventlircd-0.0.1+svn20110129.2130/udev/.svn/all-wcprops eventlircd-0.0.1+svn20110409.0930/udev/.svn/all-wcprops --- eventlircd-0.0.1+svn20110129.2130/udev/.svn/all-wcprops 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/udev/.svn/all-wcprops 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 27 -/svn/!svn/ver/40/trunk/udev -END -lircd_helper.in -K 25 -svn:wc:ra_dav:version-url -V 43 -/svn/!svn/ver/30/trunk/udev/lircd_helper.in -END -wakeup_enable.in -K 25 -svn:wc:ra_dav:version-url -V 44 -/svn/!svn/ver/31/trunk/udev/wakeup_enable.in -END -Makefile.am -K 25 -svn:wc:ra_dav:version-url -V 38 -/svn/!svn/ver/2/trunk/udev/Makefile.am -END diff -Nru eventlircd-0.0.1+svn20110129.2130/udev/.svn/entries eventlircd-0.0.1+svn20110409.0930/udev/.svn/entries --- eventlircd-0.0.1+svn20110129.2130/udev/.svn/entries 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/udev/.svn/entries 1970-01-01 00:00:00.000000000 +0000 @@ -1,133 +0,0 @@ -10 - -dir -41 -http://eventlircd.googlecode.com/svn/trunk/udev -http://eventlircd.googlecode.com/svn - - - -2010-11-25T04:30:10.919045Z -40 -pebender - - - - - - - - - - - - - - -bd17559c-f4b9-11de-82c3-25da7dca7fdf - -lircd_helper.in -file - - - - -2011-01-29T16:45:12.284905Z -0863a6113025803587f9096787a0384c -2010-10-04T21:50:43.145382Z -30 -pebender - - - - - - - - - - - - - - - - - - - - - -2899 - -wakeup_enable.in -file - - - - -2011-01-29T16:45:12.284905Z -4f61d0e3ab6f1b82b0ce5022ef0ccb02 -2010-10-04T21:52:35.602828Z -31 -pebender - - - - - - - - - - - - - - - - - - - - - -571 - -Makefile.am -file - - - - -2011-01-29T16:45:12.284905Z -85a5f785d1fde9c99324d575652b863c -2009-12-29T20:42:29.398738Z -2 -pebender - - - - - - - - - - - - - - - - - - - - - -195 - -rules.d -dir - diff -Nru eventlircd-0.0.1+svn20110129.2130/udev/.svn/text-base/lircd_helper.in.svn-base eventlircd-0.0.1+svn20110409.0930/udev/.svn/text-base/lircd_helper.in.svn-base --- eventlircd-0.0.1+svn20110129.2130/udev/.svn/text-base/lircd_helper.in.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/udev/.svn/text-base/lircd_helper.in.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -#!/bin/sh -################################################################################ -# lircd_helper -# -# This script can be used by udev to start or stop lircd when a remote control -# device is added or removed. -# -# lircd_helper configures lircd to output using a uinput event device so that -# eventlircd can aggregate the outputs into a single lircd socket. -# -# lircd_helper configures lircd to use an lircd socket name that is derived -# from the device name. In addition, lircd_helper creates symbolic links to this -# lircd socket that are derived from the device symbolic links. You can use this -# socket and the symbolic link to this socket when using commands such as -# irsend. -# -# lircd_helper understands two lircd_helper specific device properites set -# using ENV{} and passed as environment variables: -# lircd_driver: -# Used to tell lircd_helper the name of the lircd driver. -# lircd_conf: -# Used to tell lircd_helper the path to the lircd.conf file to use. -################################################################################ - -case "${ACTION}" in - add) - if test "x${lircd_driver}" = "x" ; then - exit 1; - fi - if test "x${lircd_conf}" = "x" ; then - exit 1; - fi - if test ! -e '@localstatedir@/run/lirc' ; then - mkdir -p '@localstatedir@/run/lirc' - fi - devname_instance=`echo ${DEVNAME} | sed -e 's/\/\+/~/g' -e 's/^~dev~//'` - if test ! -e "@localstatedir@/run/lirc/lircd-${devname_instance}.pid" ; then - daemon='@sbindir@/lircd' - daemon="${daemon} --driver=${lircd_driver}" - daemon="${daemon} --device=${DEVNAME}" - daemon="${daemon} --uinput" - daemon="${daemon} --output=@localstatedir@/run/lirc/lircd-${devname_instance}" - daemon="${daemon} --pidfile=@localstatedir@/run/lirc/lircd-${devname_instance}.pid" - daemon="${daemon} ${lircd_conf}" - ${daemon} - for devlink in ${DEVLINKS} ; do - devlink_instance=`echo ${devlink} | /bin/sed -e 's/\/\+/~/g' -e 's/^~dev~//'` - rm -f "@localstatedir@/run/lirc/lircd-${devlink_instance}" - ln -s "lircd-${devname_instance}" "@localstatedir@/run/lirc/lircd-${devlink_instance}" - done - fi - ;; - remove) - instance=`echo $DEVNAME | sed -e 's/\/\+/~/g' -e 's/^~dev~//'` - if test -e "@localstatedir@/run/lirc/lircd-${instance}.pid" ; then - pid=`cat @localstatedir@/run/lirc/lircd-${instance}.pid` - if test ! "x${pid}" = "x" ; then - kill ${pid} - fi - for devlink in ${DEVLINKS} ; do - devlink_instance=`echo ${devlink} | sed -e 's/\/\+/~/g' -e 's/^~dev~//'` - rm -f "@localstatedir@/run/lirc/lircd-${devlink_instance}" - done - fi - ;; -esac - -exit 0 diff -Nru eventlircd-0.0.1+svn20110129.2130/udev/.svn/text-base/Makefile.am.svn-base eventlircd-0.0.1+svn20110409.0930/udev/.svn/text-base/Makefile.am.svn-base --- eventlircd-0.0.1+svn20110129.2130/udev/.svn/text-base/Makefile.am.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/udev/.svn/text-base/Makefile.am.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -udevbindir = $(UDEV_DIR) -udevrulesdir = $(UDEV_DIR)/rules.d - -udevbin_SCRIPTS = lircd_helper wakeup_enable -udevrules_DATA = rules.d/98-lircd.rules.disabled rules.d/98-eventlircd.rules.disabled diff -Nru eventlircd-0.0.1+svn20110129.2130/udev/.svn/text-base/wakeup_enable.in.svn-base eventlircd-0.0.1+svn20110409.0930/udev/.svn/text-base/wakeup_enable.in.svn-base --- eventlircd-0.0.1+svn20110129.2130/udev/.svn/text-base/wakeup_enable.in.svn-base 2011-01-29 16:45:12.000000000 +0000 +++ eventlircd-0.0.1+svn20110409.0930/udev/.svn/text-base/wakeup_enable.in.svn-base 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -################################################################################ -# wakeup_enable -################################################################################ - -devpath=`readlink -f "/sys/${DEVPATH}"` -while echo "${devpath}" | /bin/grep -q '^/sys/devices/' > /dev/null 2>&1 ; do - if test -e "${devpath}/power/wakeup" ; then - state=`cat "${devpath}/power/wakeup"` - if test "x${state}" = "xdisabled" ; then - echo "enabled" > "${devpath}/power/wakeup" - fi - fi - devpath=`dirname "${devpath}"` -done - -exit 0