v4l-utils: create separate keymaps instead of patching rc6_mce

All locally added remote keycodes are now in separate files,
one per remote, instead of adding them to rc6_mce.

A new keymap, libreelec_multi, with all keycodes of the previous
rc6_mce map is added in install and used by default when the
remote is configured to use the rc-rc6-mce table.

The default behaviour is unchanged, LE can still be controlled with
MCE, xbox, ... remotes out of the box but it's now possible to configure
the ir receiver to react only on the codes sent by a specific remote.

This solves the issue where a xbox remote always controlled LE even
when a user only wanted to control it with a MCE remote.

To do this simply create a /storage/.config/rc_maps.cfg file with
the following content:

*	rc-rc6-mce	rc6_mce

Signed-off-by: Matthias Reichl <hias@horus.com>
This commit is contained in:
Matthias Reichl 2017-03-12 17:06:53 +01:00
parent 7948131c88
commit 40c68b1236
9 changed files with 93 additions and 73 deletions

View File

@ -45,4 +45,12 @@ post_makeinstall_target() {
mkdir -p $INSTALL/usr/config
cp -PR $PKG_DIR/config/* $INSTALL/usr/config
(
echo "# table libreelec_multi, type: RC6 NEC"
for f in rc6_mce xbox_360 zotac_ad10 hp_mce xbox_one cubox_i ; do
echo "# $f"
grep -v "^#" $INSTALL/usr/lib/udev/rc_keymaps/$f
done
) > $INSTALL/usr/lib/udev/rc_keymaps/libreelec_multi
}

View File

@ -1,13 +1,10 @@
diff --git a/utils/keytable/rc_keymaps/rc6_mce b/utils/keytable/rc_keymaps/rc6_mce
index d469845..c833a0c 100644
--- a/utils/keytable/rc_keymaps/rc6_mce
+++ b/utils/keytable/rc_keymaps/rc6_mce
@@ -173,3 +173,69 @@
0x8034046e KEY_GREEN
0x8034046f KEY_YELLOW
0x80340470 KEY_BLUE
+
+#HP MCE Remote
diff --git a/utils/keytable/rc_keymaps/hp_mce b/utils/keytable/rc_keymaps/hp_mce
new file mode 100644
index 0000000..266dc8a
--- /dev/null
+++ b/utils/keytable/rc_keymaps/hp_mce
@@ -0,0 +1,65 @@
+# table hp_mce, type: RC6
+0x80111200 KEY_NUMERIC_0
+0x80111201 KEY_NUMERIC_1
+0x80111202 KEY_NUMERIC_2

View File

@ -1,36 +0,0 @@
diff -Naur v4l-utils-0.8.9/utils/keytable/rc_keymaps/rc6_mce v4l-utils-0.8.9.patch/utils/keytable/rc_keymaps/rc6_mce
--- v4l-utils-0.8.9/utils/keytable/rc_keymaps/rc6_mce 2014-05-20 14:31:04.585559227 +0200
+++ v4l-utils-0.8.9.patch/utils/keytable/rc_keymaps/rc6_mce 2014-05-20 17:47:04.341378915 +0200
@@ -1,4 +1,4 @@
-# table rc6_mce, type: RC6
+# table rc6_mce, type: RC6 NEC
0x800f0400 KEY_NUMERIC_0
0x800f0401 KEY_NUMERIC_1
0x800f0402 KEY_NUMERIC_2
@@ -239,3 +239,26 @@
0x8011129f KEY_LASTSOURCE
0x8011128b KEY_SOURCE
0x801112a3 KEY_SCREEN
+
+#XBOX One Remote (Protocol: NEC)
+0x80d864 KEY_MEDIA
+0x80d820 KEY_LEFT
+0x80d821 KEY_RIGHT
+0x80d81e KEY_UP
+0x80d81f KEY_DOWN
+0x80d822 KEY_OK
+0x80d823 KEY_EXIT
+0x80d80e KEY_MUTE
+0x80d810 KEY_VOLUMEUP
+0x80d811 KEY_VOLUMEDOWN
+0x80d812 KEY_CHANNELUP
+0x80d813 KEY_CHANNELDOWN
+0x80d814 KEY_FASTFORWARD
+0x80d815 KEY_REWIND
+0x80d870 KEY_PLAYPAUSE
+0x80d819 KEY_STOP
+0x80d81a KEY_NEXT
+0x80d81b KEY_PREVIOUS
+0x80d826 KEY_INFO
+0x80d86f KEY_EPG
+0x80d86e KEY_ZOOM

View File

@ -0,0 +1,28 @@
diff --git a/utils/keytable/rc_keymaps/xbox_one b/utils/keytable/rc_keymaps/xbox_one
new file mode 100644
index 0000000..07614ee
--- /dev/null
+++ b/utils/keytable/rc_keymaps/xbox_one
@@ -0,0 +1,22 @@
+# table xbox_one, type: NEC
+0x80d864 KEY_MEDIA
+0x80d820 KEY_LEFT
+0x80d821 KEY_RIGHT
+0x80d81e KEY_UP
+0x80d81f KEY_DOWN
+0x80d822 KEY_OK
+0x80d823 KEY_EXIT
+0x80d80e KEY_MUTE
+0x80d810 KEY_VOLUMEUP
+0x80d811 KEY_VOLUMEDOWN
+0x80d812 KEY_CHANNELUP
+0x80d813 KEY_CHANNELDOWN
+0x80d814 KEY_FASTFORWARD
+0x80d815 KEY_REWIND
+0x80d870 KEY_PLAYPAUSE
+0x80d819 KEY_STOP
+0x80d81a KEY_NEXT
+0x80d81b KEY_PREVIOUS
+0x80d826 KEY_INFO
+0x80d86f KEY_EPG
+0x80d86e KEY_ZOOM

View File

@ -1,12 +1,10 @@
diff -Nru a/utils/keytable/rc_keymaps/rc6_mce b/utils/keytable/rc_keymaps/rc6_mce
--- a/utils/keytable/rc_keymaps/rc6_mce 2015-02-17 12:25:15.452561904 +0200
+++ b/utils/keytable/rc_keymaps/rc6_mce 2015-05-27 13:22:28.089766130 +0300
@@ -262,3 +262,15 @@
0x80d826 KEY_INFO
0x80d86f KEY_EPG
0x80d86e KEY_ZOOM
+
+#CuBox-i and HummingBoard remote control
diff --git a/utils/keytable/rc_keymaps/cuboxi b/utils/keytable/rc_keymaps/cubox_i
new file mode 100644
index 0000000..1063253
--- /dev/null
+++ b/utils/keytable/rc_keymaps/cubox_i
@@ -0,0 +1,10 @@
+# table cubox_i, type: RC6
+0x1f020b0 KEY_MEDIA
+0x1f02078 KEY_UP
+0x1f02044 KEY_ENTER
@ -16,4 +14,3 @@ diff -Nru a/utils/keytable/rc_keymaps/rc6_mce b/utils/keytable/rc_keymaps/rc6_mc
+0x1f020c4 KEY_BACKSPACE
+0x1f02068 KEY_PLAYPAUSE
+0x1f02064 KEY_EPG
+

View File

@ -1,11 +1,10 @@
diff -rupN v4l-utils-0.8.3/utils/keytable/rc_keymaps/rc6_mce v4l-utils-0.8.3.patch/utils/keytable/rc_keymaps/rc6_mce
--- v4l-utils-0.8.3/utils/keytable/rc_keymaps/rc6_mce 2011-08-19 19:08:11.000000000 +0200
+++ v4l-utils-0.8.3.patch/utils/keytable/rc_keymaps/rc6_mce 2011-09-22 21:50:44.000000000 +0200
@@ -60,3 +60,69 @@
0x800f046f KEY_MEDIA
0x800f0480 KEY_BRIGHTNESSDOWN
0x800f0481 KEY_PLAYPAUSE
+#xbox360 remote
diff --git a/utils/keytable/rc_keymaps/xbox_360 b/utils/keytable/rc_keymaps/xbox_360
new file mode 100644
index 0000000..b90ecfd
--- /dev/null
+++ b/utils/keytable/rc_keymaps/xbox_360
@@ -0,0 +1,66 @@
+# table xbox_360, type: RC6
+0x800f7400 KEY_NUMERIC_0
+0x800f7401 KEY_NUMERIC_1
+0x800f7402 KEY_NUMERIC_2

View File

@ -1,12 +1,10 @@
diff -Naur v4l-utils-0.8.3/utils/keytable/rc_keymaps/rc6_mce v4l-utils-0.8.3.patch/utils/keytable/rc_keymaps/rc6_mce
--- v4l-utils-0.8.3/utils/keytable/rc_keymaps/rc6_mce 2013-09-22 13:54:18.609413831 +0200
+++ v4l-utils-0.8.3.patch/utils/keytable/rc_keymaps/rc6_mce 2013-09-22 13:56:37.641651436 +0200
@@ -126,3 +127,48 @@
0x800f746f KEY_PLAYER
0x800f7480 KEY_BRIGHTNESSDOWN
0x800f7481 KEY_PLAYPAUSE
+
+#Zotac AD10 Remote
diff --git a/utils/keytable/rc_keymaps/zotac_ad10 b/utils/keytable/rc_keymaps/zotac_ad10
new file mode 100644
index 0000000..e93fad4
--- /dev/null
+++ b/utils/keytable/rc_keymaps/zotac_ad10
@@ -0,0 +1,44 @@
+# table zotac_ad10, type: RC6
+0x8034048e KEY_POWER
+0x8034043d KEY_POWER
+0x80340400 KEY_NUMERIC_0

View File

@ -0,0 +1,29 @@
diff --git a/utils/keytable/rc_maps.cfg b/utils/keytable/rc_maps.cfg
index e69fd6a..c0fe122 100644
--- a/utils/keytable/rc_maps.cfg
+++ b/utils/keytable/rc_maps.cfg
@@ -109,7 +109,9 @@
* rc-proteus-2309 proteus_2309
* rc-purpletv purpletv
* rc-pv951 pv951
-* rc-rc6-mce rc6_mce
+# use combined multi-table on MCE receivers
+#* rc-rc6-mce rc6_mce
+* rc-rc6-mce libreelec_multi
* rc-real-audio-220-32-keys real_audio_220_32_keys
* rc-reddo reddo
* rc-snapstream-firefly snapstream_firefly
@@ -136,6 +138,13 @@
* rc-videomate-tv-pvr videomate_tv_pvr
* rc-winfast-usbii-deluxe winfast_usbii_deluxe
* rc-winfast winfast
+# fake tables for LibreELEC keymaps
+* rc-cubox-i cubox-i
+* rc-hp-mce hp_mce
+* rc-samsung samsung
+* rc-xbox-360 xbox_360
+* rc-xbox-one xbox_one
+* rc-zotac-ad10 zotac_ad10
# * * a800 # found in a800.c
# * * af9005 # found in af9005-remote.c
# * * cinergyt2 # found in cinergyT2-core.c