eventlircd: seperate evmap config and udev rules

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2010-09-28 22:57:22 +02:00
parent 5fe596e694
commit 9359c61bf3
11 changed files with 431 additions and 5 deletions

View File

@ -0,0 +1,41 @@
# = # 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

View File

@ -0,0 +1,57 @@
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

View File

@ -0,0 +1,46 @@
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

View File

@ -0,0 +1,30 @@
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

View File

@ -0,0 +1,17 @@
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

View File

@ -0,0 +1,22 @@
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_E = 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

View File

@ -0,0 +1,33 @@
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_STAR = KEY_NUMERIC_STAR
KEY_POUND = KEY_NUMERIC_POUND
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

View File

@ -0,0 +1,45 @@
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

View File

@ -0,0 +1,92 @@
################################################################################
# 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 <http://www.lirc.org/>.
#-------------------------------------------------------------------------------
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 <http://code.google.com/p/bdremote-ng/>.
#-------------------------------------------------------------------------------
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
# <http://abstrakraft.org/cwiid/>.
#-------------------------------------------------------------------------------
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 <BUSTYPE>_<VENDOR>_<PRODUCT>.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}=="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"

View File

@ -0,0 +1,44 @@
################################################################################
# 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}="dvico", \
ENV{lircd_conf}="/etc/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"

View File

@ -5,15 +5,14 @@
mkdir -p $INSTALL/usr/sbin
cp $PKG_BUILD/src/eventlircd $INSTALL/usr/sbin
mkdir -p $INSTALL/etc/eventlircd.d
cp $PKG_BUILD/etc/*.evmap $INSTALL/etc/eventlircd.d
mkdir -p $INSTALL/lib/udev
cp $PKG_BUILD/udev/lircd_helper $INSTALL/lib/udev
chmod +x $INSTALL/lib/udev/lircd_helper
cp $PKG_BUILD/udev/wakeup_enable $INSTALL/lib/udev
chmod +x $INSTALL/lib/udev/wakeup_enable
mkdir -p $INSTALL/etc/eventlircd.d
cp $PKG_DIR/config/evmap/*.evmap $INSTALL/etc/eventlircd.d
mkdir -p $INSTALL/lib/udev/rules.d
cp $PKG_BUILD/udev/rules.d/98-eventlircd.rules.disabled $INSTALL/lib/udev/rules.d/98-eventlircd.rules
cp $PKG_BUILD/udev/rules.d/98-lircd.rules.disabled $INSTALL/lib/udev/rules.d/98-lircd.rules
cp $PKG_DIR/config/rules/*.rules $INSTALL/lib/udev/rules.d