Add BPF decoders to ir-keytable
Subsystems (6)
v3 cover Add BPF decoders to ir-keytable
Once kernel v4.18 is released with IR BPF decoding, this can be merged to v4l-utils.
The idea is that IR decoders can be written in C, compiled to BPF relocatable object file. Any global variables can overriden, so we can supports lots of variants of similiar protocols (just like in the lircd.conf file).
The existing rc_keymap file format can't be used for variables, so I've converted the format to toml. An alternative would be to use the existing lircd.conf file format, but it's a very awkward file to parse in C and it contains many features which are irrelevant to us.
We use libelf to load the bpf relocatable object file.
After loading our example grundig keymap with bpf decoder, the output of ir-keytable is:
Found /sys/class/rc/rc0/ (/dev/input/event8) with:
Name: Winbond CIR
Driver: winbond-cir, table: rc-rc6-mce
LIRC device: /dev/lirc0
Attached BPF protocols: grundig
Supported kernel protocols: lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp imon Enabled protocols: lirc
bus: 25, vendor/product: 10ad:00f1, version: 0x0004
Repeat delay = 500 ms, repeat period = 125 ms
Alternatively, you simply specify the path to the object file on the command line:
$ ir-keytable -e header_pulse=9000,header_space=4500 -p ./pulse_distance.o
Derek, please note that you can now convert the dish lircd.conf to toml and load the keymap; it should just work. It would be great to have your feedback, thank you.
Changes since v3:
- lots of fixes
- Wrote python script to convert lircd.conf to toml file
Changes since v2:
- bpf parameters can be specified on the command line
- bpf decoders can be loaded by path without keymap
Sean Young (5):
keytable: add support for BPF based protocols
keytable: add bpf protocols
keytable: add toml keymap reader
keytable: convert keymaps to new toml format
ir-keytable: add tool to aid migration from lircd
Makefile.am | 4 +- configure.ac | 15 + contrib/Makefile.am | 3 +- contrib/lircd2toml.py | 527 ++++ include/linux/bpf.h | 2669 +++++++++++++++++ utils/keytable/Makefile.am | 13 +- utils/keytable/bpf.c | 515 ++++ utils/keytable/bpf.h | 110 + utils/keytable/bpf_load.c | 472 +++ utils/keytable/bpf_load.h | 43 + utils/keytable/bpf_protocols/Makefile.am | 21 + utils/keytable/bpf_protocols/bpf_helpers.h | 315 ++ utils/keytable/bpf_protocols/grundig.c | 126 + utils/keytable/bpf_protocols/manchester.c | 167 ++ utils/keytable/bpf_protocols/pulse_distance.c | 156 + utils/keytable/bpf_protocols/pulse_length.c | 152 + utils/keytable/bpf_protocols/rc_mm.c | 139 + utils/keytable/gen_keytables.pl | 33 +- utils/keytable/ir-keytable.1.in | 18 +- utils/keytable/keytable.c | 532 +++- utils/keytable/rc_keymaps/adstech_dvb_t_pci | 45 - .../rc_keymaps/adstech_dvb_t_pci.toml | 48 + utils/keytable/rc_keymaps/af9005 | 37 - utils/keytable/rc_keymaps/af9005.toml | 40 + utils/keytable/rc_keymaps/alink_dtu_m | 19 - utils/keytable/rc_keymaps/alink_dtu_m.toml | 23 + .../keytable/rc_keymaps/allwinner_ba10_tv_box | 15 - .../rc_keymaps/allwinner_i12_a20_tv_box | 28 - utils/keytable/rc_keymaps/anysee | 45 - utils/keytable/rc_keymaps/anysee.toml | 49 + utils/keytable/rc_keymaps/apac_viewcomp | 32 - utils/keytable/rc_keymaps/apac_viewcomp.toml | 35 + utils/keytable/rc_keymaps/astrometa_t2hybrid | 22 - .../rc_keymaps/astrometa_t2hybrid.toml | 26 + utils/keytable/rc_keymaps/asus_pc39 | 40 - utils/keytable/rc_keymaps/asus_pc39.toml | 44 + utils/keytable/rc_keymaps/asus_ps3_100 | 42 - utils/keytable/rc_keymaps/asus_ps3_100.toml | 46 + .../keytable/rc_keymaps/ati_tv_wonder_hd_600 | 25 - .../rc_keymaps/ati_tv_wonder_hd_600.toml | 28 + utils/keytable/rc_keymaps/ati_x10 | 49 - utils/keytable/rc_keymaps/ati_x10.toml | 52 + utils/keytable/rc_keymaps/avermedia | 37 - utils/keytable/rc_keymaps/avermedia.toml | 40 + utils/keytable/rc_keymaps/avermedia_a16d | 35 - utils/keytable/rc_keymaps/avermedia_a16d.toml | 38 + utils/keytable/rc_keymaps/avermedia_cardbus | 55 - .../rc_keymaps/avermedia_cardbus.toml | 58 + utils/keytable/rc_keymaps/avermedia_dvbt | 35 - utils/keytable/rc_keymaps/avermedia_dvbt.toml | 38 + utils/keytable/rc_keymaps/avermedia_m135a | 81 - .../keytable/rc_keymaps/avermedia_m135a.toml | 85 + .../keytable/rc_keymaps/avermedia_m733a_rm_k6 | 45 - .../rc_keymaps/avermedia_m733a_rm_k6.toml | 49 + utils/keytable/rc_keymaps/avermedia_rm_ks | 28 - .../keytable/rc_keymaps/avermedia_rm_ks.toml | 32 + utils/keytable/rc_keymaps/avertv_303 | 37 - utils/keytable/rc_keymaps/avertv_303.toml | 40 + utils/keytable/rc_keymaps/az6027 | 3 - utils/keytable/rc_keymaps/az6027.toml | 6 + utils/keytable/rc_keymaps/azurewave_ad_tu700 | 54 - .../rc_keymaps/azurewave_ad_tu700.toml | 58 + utils/keytable/rc_keymaps/behold | 35 - utils/keytable/rc_keymaps/behold.toml | 39 + utils/keytable/rc_keymaps/behold_columbus | 29 - .../keytable/rc_keymaps/behold_columbus.toml | 32 + utils/keytable/rc_keymaps/budget_ci_old | 46 - utils/keytable/rc_keymaps/budget_ci_old.toml | 49 + utils/keytable/rc_keymaps/cec | 98 - utils/keytable/rc_keymaps/cec.toml | 101 + utils/keytable/rc_keymaps/cinergy | 37 - utils/keytable/rc_keymaps/cinergy.toml | 40 + utils/keytable/rc_keymaps/cinergy_1400 | 38 - utils/keytable/rc_keymaps/cinergy_1400.toml | 41 + utils/keytable/rc_keymaps/cinergyt2 | 38 - utils/keytable/rc_keymaps/cinergyt2.toml | 41 + utils/keytable/rc_keymaps/d680_dmb | 36 - utils/keytable/rc_keymaps/d680_dmb.toml | 39 + utils/keytable/rc_keymaps/delock_61959 | 33 - utils/keytable/rc_keymaps/delock_61959.toml | 37 + utils/keytable/rc_keymaps/dib0700_nec | 71 - utils/keytable/rc_keymaps/dib0700_nec.toml | 75 + utils/keytable/rc_keymaps/dib0700_rc5 | 181 -- utils/keytable/rc_keymaps/dib0700_rc5.toml | 185 ++ utils/keytable/rc_keymaps/dibusb | 112 - utils/keytable/rc_keymaps/dibusb.toml | 115 + utils/keytable/rc_keymaps/digitalnow_tinytwin | 50 - .../rc_keymaps/digitalnow_tinytwin.toml | 54 + utils/keytable/rc_keymaps/digittrade | 29 - utils/keytable/rc_keymaps/digittrade.toml | 33 + utils/keytable/rc_keymaps/digitv | 56 - utils/keytable/rc_keymaps/digitv.toml | 59 + utils/keytable/rc_keymaps/dm1105_nec | 32 - utils/keytable/rc_keymaps/dm1105_nec.toml | 35 + utils/keytable/rc_keymaps/dntv_live_dvb_t | 33 - .../keytable/rc_keymaps/dntv_live_dvb_t.toml | 36 + utils/keytable/rc_keymaps/dntv_live_dvbt_pro | 54 - .../rc_keymaps/dntv_live_dvbt_pro.toml | 57 + utils/keytable/rc_keymaps/dtt200u | 19 - utils/keytable/rc_keymaps/dtt200u.toml | 23 + utils/keytable/rc_keymaps/dvbsky | 33 - utils/keytable/rc_keymaps/dvbsky.toml | 37 + utils/keytable/rc_keymaps/dvico_mce | 46 - utils/keytable/rc_keymaps/dvico_mce.toml | 50 + utils/keytable/rc_keymaps/dvico_portable | 37 - utils/keytable/rc_keymaps/dvico_portable.toml | 41 + utils/keytable/rc_keymaps/em_terratec | 29 - utils/keytable/rc_keymaps/em_terratec.toml | 32 + utils/keytable/rc_keymaps/encore_enltv | 53 - utils/keytable/rc_keymaps/encore_enltv.toml | 56 + utils/keytable/rc_keymaps/encore_enltv2 | 40 - utils/keytable/rc_keymaps/encore_enltv2.toml | 43 + utils/keytable/rc_keymaps/encore_enltv_fm53 | 30 - .../rc_keymaps/encore_enltv_fm53.toml | 33 + utils/keytable/rc_keymaps/evga_indtube | 17 - utils/keytable/rc_keymaps/evga_indtube.toml | 20 + utils/keytable/rc_keymaps/eztv | 45 - utils/keytable/rc_keymaps/eztv.toml | 48 + utils/keytable/rc_keymaps/flydvb | 33 - utils/keytable/rc_keymaps/flydvb.toml | 36 + utils/keytable/rc_keymaps/flyvideo | 28 - utils/keytable/rc_keymaps/flyvideo.toml | 31 + utils/keytable/rc_keymaps/fusionhdtv_mce | 46 - utils/keytable/rc_keymaps/fusionhdtv_mce.toml | 49 + utils/keytable/rc_keymaps/gadmei_rm008z | 32 - utils/keytable/rc_keymaps/gadmei_rm008z.toml | 35 + utils/keytable/rc_keymaps/geekbox | 13 - utils/keytable/rc_keymaps/geekbox.toml | 17 + utils/keytable/rc_keymaps/genius_tvgo_a11mce | 33 - .../rc_keymaps/genius_tvgo_a11mce.toml | 36 + utils/keytable/rc_keymaps/gotview7135 | 35 - utils/keytable/rc_keymaps/gotview7135.toml | 38 + utils/keytable/rc_keymaps/haupp | 46 - utils/keytable/rc_keymaps/haupp.toml | 49 + utils/keytable/rc_keymaps/hauppauge | 173 -- utils/keytable/rc_keymaps/hauppauge.toml | 177 ++ utils/keytable/rc_keymaps/hisi_poplar | 30 - utils/keytable/rc_keymaps/hisi_poplar.toml | 34 + utils/keytable/rc_keymaps/hisi_tv_demo | 42 - utils/keytable/rc_keymaps/hisi_tv_demo.toml | 46 + utils/keytable/rc_keymaps/imon_mce | 78 - utils/keytable/rc_keymaps/imon_mce.toml | 82 + utils/keytable/rc_keymaps/imon_pad | 91 - utils/keytable/rc_keymaps/imon_pad.toml | 94 + utils/keytable/rc_keymaps/imon_rsc | 44 - utils/keytable/rc_keymaps/imon_rsc.toml | 48 + utils/keytable/rc_keymaps/iodata_bctv7e | 37 - utils/keytable/rc_keymaps/iodata_bctv7e.toml | 40 + utils/keytable/rc_keymaps/it913x_v1 | 53 - utils/keytable/rc_keymaps/it913x_v1.toml | 57 + utils/keytable/rc_keymaps/it913x_v2 | 48 - utils/keytable/rc_keymaps/it913x_v2.toml | 52 + utils/keytable/rc_keymaps/kaiomy | 33 - utils/keytable/rc_keymaps/kaiomy.toml | 36 + utils/keytable/rc_keymaps/kworld_315u | 33 - utils/keytable/rc_keymaps/kworld_315u.toml | 37 + utils/keytable/rc_keymaps/kworld_pc150u | 45 - utils/keytable/rc_keymaps/kworld_pc150u.toml | 48 + .../keytable/rc_keymaps/kworld_plus_tv_analog | 32 - .../rc_keymaps/kworld_plus_tv_analog.toml | 35 + utils/keytable/rc_keymaps/leadtek_y04g0051 | 51 - .../keytable/rc_keymaps/leadtek_y04g0051.toml | 55 + utils/keytable/rc_keymaps/lme2510 | 67 - utils/keytable/rc_keymaps/lme2510.toml | 71 + utils/keytable/rc_keymaps/manli | 32 - utils/keytable/rc_keymaps/manli.toml | 35 + utils/keytable/rc_keymaps/medion_x10 | 54 - utils/keytable/rc_keymaps/medion_x10.toml | 57 + .../keytable/rc_keymaps/medion_x10_digitainer | 50 - .../rc_keymaps/medion_x10_digitainer.toml | 53 + utils/keytable/rc_keymaps/medion_x10_or2x | 46 - .../keytable/rc_keymaps/medion_x10_or2x.toml | 49 + utils/keytable/rc_keymaps/megasky | 17 - utils/keytable/rc_keymaps/megasky.toml | 20 + utils/keytable/rc_keymaps/msi_digivox_ii | 19 - utils/keytable/rc_keymaps/msi_digivox_ii.toml | 23 + utils/keytable/rc_keymaps/msi_digivox_iii | 33 - .../keytable/rc_keymaps/msi_digivox_iii.toml | 37 + utils/keytable/rc_keymaps/msi_tvanywhere | 25 - utils/keytable/rc_keymaps/msi_tvanywhere.toml | 28 + utils/keytable/rc_keymaps/msi_tvanywhere_plus | 37 - .../rc_keymaps/msi_tvanywhere_plus.toml | 40 + utils/keytable/rc_keymaps/nebula | 56 - utils/keytable/rc_keymaps/nebula.toml | 60 + .../rc_keymaps/nec_terratec_cinergy_xs | 86 - .../rc_keymaps/nec_terratec_cinergy_xs.toml | 90 + utils/keytable/rc_keymaps/norwood | 36 - utils/keytable/rc_keymaps/norwood.toml | 39 + utils/keytable/rc_keymaps/npgtech | 36 - utils/keytable/rc_keymaps/npgtech.toml | 39 + utils/keytable/rc_keymaps/opera1 | 27 - utils/keytable/rc_keymaps/opera1.toml | 30 + utils/keytable/rc_keymaps/pctv_sedna | 33 - utils/keytable/rc_keymaps/pctv_sedna.toml | 36 + utils/keytable/rc_keymaps/pinnacle310e | 54 - utils/keytable/rc_keymaps/pinnacle310e.toml | 57 + utils/keytable/rc_keymaps/pinnacle_color | 43 - utils/keytable/rc_keymaps/pinnacle_color.toml | 46 + utils/keytable/rc_keymaps/pinnacle_grey | 42 - utils/keytable/rc_keymaps/pinnacle_grey.toml | 45 + utils/keytable/rc_keymaps/pinnacle_pctv_hd | 27 - .../keytable/rc_keymaps/pinnacle_pctv_hd.toml | 31 + utils/keytable/rc_keymaps/pixelview | 33 - utils/keytable/rc_keymaps/pixelview.toml | 36 + utils/keytable/rc_keymaps/pixelview_002t | 27 - utils/keytable/rc_keymaps/pixelview_002t.toml | 31 + utils/keytable/rc_keymaps/pixelview_mk12 | 32 - utils/keytable/rc_keymaps/pixelview_mk12.toml | 36 + utils/keytable/rc_keymaps/pixelview_new | 32 - utils/keytable/rc_keymaps/pixelview_new.toml | 35 + .../keytable/rc_keymaps/powercolor_real_angel | 36 - .../rc_keymaps/powercolor_real_angel.toml | 39 + utils/keytable/rc_keymaps/proteus_2309 | 25 - utils/keytable/rc_keymaps/proteus_2309.toml | 28 + utils/keytable/rc_keymaps/purpletv | 36 - utils/keytable/rc_keymaps/purpletv.toml | 39 + utils/keytable/rc_keymaps/pv951 | 32 - utils/keytable/rc_keymaps/pv951.toml | 35 + utils/keytable/rc_keymaps/rc6_mce | 65 - utils/keytable/rc_keymaps/rc6_mce.toml | 69 + .../rc_keymaps/real_audio_220_32_keys | 29 - .../rc_keymaps/real_audio_220_32_keys.toml | 32 + utils/keytable/rc_keymaps/reddo | 24 - utils/keytable/rc_keymaps/reddo.toml | 28 + utils/keytable/rc_keymaps/snapstream_firefly | 49 - .../rc_keymaps/snapstream_firefly.toml | 52 + utils/keytable/rc_keymaps/streamzap | 36 - utils/keytable/rc_keymaps/streamzap.toml | 39 + utils/keytable/rc_keymaps/su3000 | 36 - utils/keytable/rc_keymaps/su3000.toml | 40 + utils/keytable/rc_keymaps/tango | 51 - utils/keytable/rc_keymaps/tango.toml | 55 + utils/keytable/rc_keymaps/tbs_nec | 35 - utils/keytable/rc_keymaps/tbs_nec.toml | 38 + utils/keytable/rc_keymaps/technisat_ts35 | 34 - utils/keytable/rc_keymaps/technisat_ts35.toml | 37 + utils/keytable/rc_keymaps/technisat_usb2 | 34 - utils/keytable/rc_keymaps/technisat_usb2.toml | 38 + .../rc_keymaps/terratec_cinergy_c_pci | 49 - .../rc_keymaps/terratec_cinergy_c_pci.toml | 52 + .../rc_keymaps/terratec_cinergy_s2_hd | 49 - .../rc_keymaps/terratec_cinergy_s2_hd.toml | 52 + utils/keytable/rc_keymaps/terratec_cinergy_xs | 48 - .../rc_keymaps/terratec_cinergy_xs.toml | 51 + utils/keytable/rc_keymaps/terratec_slim | 29 - utils/keytable/rc_keymaps/terratec_slim.toml | 33 + utils/keytable/rc_keymaps/terratec_slim_2 | 19 - .../keytable/rc_keymaps/terratec_slim_2.toml | 23 + utils/keytable/rc_keymaps/tevii_nec | 48 - utils/keytable/rc_keymaps/tevii_nec.toml | 51 + utils/keytable/rc_keymaps/tivo | 46 - utils/keytable/rc_keymaps/tivo.toml | 50 + utils/keytable/rc_keymaps/total_media_in_hand | 36 - .../rc_keymaps/total_media_in_hand.toml | 40 + .../rc_keymaps/total_media_in_hand_02 | 36 - .../rc_keymaps/total_media_in_hand_02.toml | 40 + utils/keytable/rc_keymaps/trekstor | 29 - utils/keytable/rc_keymaps/trekstor.toml | 33 + utils/keytable/rc_keymaps/tt_1500 | 40 - utils/keytable/rc_keymaps/tt_1500.toml | 44 + utils/keytable/rc_keymaps/tvwalkertwin | 18 - utils/keytable/rc_keymaps/tvwalkertwin.toml | 21 + utils/keytable/rc_keymaps/twinhan_dtv_cab_ci | 54 - .../rc_keymaps/twinhan_dtv_cab_ci.toml | 57 + utils/keytable/rc_keymaps/twinhan_vp1027_dvbs | 54 - .../rc_keymaps/twinhan_vp1027_dvbs.toml | 58 + utils/keytable/rc_keymaps/videomate_k100 | 52 - utils/keytable/rc_keymaps/videomate_k100.toml | 55 + utils/keytable/rc_keymaps/videomate_s350 | 45 - utils/keytable/rc_keymaps/videomate_s350.toml | 48 + utils/keytable/rc_keymaps/videomate_tv_pvr | 38 - .../keytable/rc_keymaps/videomate_tv_pvr.toml | 41 + utils/keytable/rc_keymaps/vp702x | 3 - utils/keytable/rc_keymaps/vp702x.toml | 6 + utils/keytable/rc_keymaps/winfast | 57 - utils/keytable/rc_keymaps/winfast.toml | 60 + .../keytable/rc_keymaps/winfast_usbii_deluxe | 29 - .../rc_keymaps/winfast_usbii_deluxe.toml | 32 + utils/keytable/rc_keymaps/wobo_i5 | 9 - utils/keytable/rc_keymaps/zx_irdec | 41 - utils/keytable/rc_keymaps/zx_irdec.toml | 45 + .../allwinner_ba10_tv_box | 15 - .../allwinner_ba10_tv_box.toml | 18 + .../allwinner_i12_a20_tv_box | 28 - .../allwinner_i12_a20_tv_box.toml | 31 + utils/keytable/rc_keymaps_userspace/wobo_i5 | 9 - .../rc_keymaps_userspace/wobo_i5.toml | 12 + utils/keytable/rc_maps.cfg | 268 +- utils/keytable/toml.c | 1903 ++++++++++++ utils/keytable/toml.h | 110 + v4l-utils.spec.in | 2 +- 291 files changed, 14094 insertions(+), 5752 deletions(-) create mode 100755 contrib/lircd2toml.py create mode 100644 include/linux/bpf.h create mode 100644 utils/keytable/bpf.c create mode 100644 utils/keytable/bpf.h create mode 100644 utils/keytable/bpf_load.c create mode 100644 utils/keytable/bpf_load.h create mode 100644 utils/keytable/bpf_protocols/Makefile.am create mode 100644 utils/keytable/bpf_protocols/bpf_helpers.h create mode 100644 utils/keytable/bpf_protocols/grundig.c create mode 100644 utils/keytable/bpf_protocols/manchester.c create mode 100644 utils/keytable/bpf_protocols/pulse_distance.c create mode 100644 utils/keytable/bpf_protocols/pulse_length.c create mode 100644 utils/keytable/bpf_protocols/rc_mm.c delete mode 100644 utils/keytable/rc_keymaps/adstech_dvb_t_pci create mode 100644 utils/keytable/rc_keymaps/adstech_dvb_t_pci.toml delete mode 100644 utils/keytable/rc_keymaps/af9005 create mode 100644 utils/keytable/rc_keymaps/af9005.toml delete mode 100644 utils/keytable/rc_keymaps/alink_dtu_m create mode 100644 utils/keytable/rc_keymaps/alink_dtu_m.toml delete mode 100644 utils/keytable/rc_keymaps/allwinner_ba10_tv_box delete mode 100644 utils/keytable/rc_keymaps/allwinner_i12_a20_tv_box delete mode 100644 utils/keytable/rc_keymaps/anysee create mode 100644 utils/keytable/rc_keymaps/anysee.toml delete mode 100644 utils/keytable/rc_keymaps/apac_viewcomp create mode 100644 utils/keytable/rc_keymaps/apac_viewcomp.toml delete mode 100644 utils/keytable/rc_keymaps/astrometa_t2hybrid create mode 100644 utils/keytable/rc_keymaps/astrometa_t2hybrid.toml delete mode 100644 utils/keytable/rc_keymaps/asus_pc39 create mode 100644 utils/keytable/rc_keymaps/asus_pc39.toml delete mode 100644 utils/keytable/rc_keymaps/asus_ps3_100 create mode 100644 utils/keytable/rc_keymaps/asus_ps3_100.toml delete mode 100644 utils/keytable/rc_keymaps/ati_tv_wonder_hd_600 create mode 100644 utils/keytable/rc_keymaps/ati_tv_wonder_hd_600.toml delete mode 100644 utils/keytable/rc_keymaps/ati_x10 create mode 100644 utils/keytable/rc_keymaps/ati_x10.toml delete mode 100644 utils/keytable/rc_keymaps/avermedia create mode 100644 utils/keytable/rc_keymaps/avermedia.toml delete mode 100644 utils/keytable/rc_keymaps/avermedia_a16d create mode 100644 utils/keytable/rc_keymaps/avermedia_a16d.toml delete mode 100644 utils/keytable/rc_keymaps/avermedia_cardbus create mode 100644 utils/keytable/rc_keymaps/avermedia_cardbus.toml delete mode 100644 utils/keytable/rc_keymaps/avermedia_dvbt create mode 100644 utils/keytable/rc_keymaps/avermedia_dvbt.toml delete mode 100644 utils/keytable/rc_keymaps/avermedia_m135a create mode 100644 utils/keytable/rc_keymaps/avermedia_m135a.toml delete mode 100644 utils/keytable/rc_keymaps/avermedia_m733a_rm_k6 create mode 100644 utils/keytable/rc_keymaps/avermedia_m733a_rm_k6.toml delete mode 100644 utils/keytable/rc_keymaps/avermedia_rm_ks create mode 100644 utils/keytable/rc_keymaps/avermedia_rm_ks.toml delete mode 100644 utils/keytable/rc_keymaps/avertv_303 create mode 100644 utils/keytable/rc_keymaps/avertv_303.toml delete mode 100644 utils/keytable/rc_keymaps/az6027 create mode 100644 utils/keytable/rc_keymaps/az6027.toml delete mode 100644 utils/keytable/rc_keymaps/azurewave_ad_tu700 create mode 100644 utils/keytable/rc_keymaps/azurewave_ad_tu700.toml delete mode 100644 utils/keytable/rc_keymaps/behold create mode 100644 utils/keytable/rc_keymaps/behold.toml delete mode 100644 utils/keytable/rc_keymaps/behold_columbus create mode 100644 utils/keytable/rc_keymaps/behold_columbus.toml delete mode 100644 utils/keytable/rc_keymaps/budget_ci_old create mode 100644 utils/keytable/rc_keymaps/budget_ci_old.toml delete mode 100644 utils/keytable/rc_keymaps/cec create mode 100644 utils/keytable/rc_keymaps/cec.toml delete mode 100644 utils/keytable/rc_keymaps/cinergy create mode 100644 utils/keytable/rc_keymaps/cinergy.toml delete mode 100644 utils/keytable/rc_keymaps/cinergy_1400 create mode 100644 utils/keytable/rc_keymaps/cinergy_1400.toml delete mode 100644 utils/keytable/rc_keymaps/cinergyt2 create mode 100644 utils/keytable/rc_keymaps/cinergyt2.toml delete mode 100644 utils/keytable/rc_keymaps/d680_dmb create mode 100644 utils/keytable/rc_keymaps/d680_dmb.toml delete mode 100644 utils/keytable/rc_keymaps/delock_61959 create mode 100644 utils/keytable/rc_keymaps/delock_61959.toml delete mode 100644 utils/keytable/rc_keymaps/dib0700_nec create mode 100644 utils/keytable/rc_keymaps/dib0700_nec.toml delete mode 100644 utils/keytable/rc_keymaps/dib0700_rc5 create mode 100644 utils/keytable/rc_keymaps/dib0700_rc5.toml delete mode 100644 utils/keytable/rc_keymaps/dibusb create mode 100644 utils/keytable/rc_keymaps/dibusb.toml delete mode 100644 utils/keytable/rc_keymaps/digitalnow_tinytwin create mode 100644 utils/keytable/rc_keymaps/digitalnow_tinytwin.toml delete mode 100644 utils/keytable/rc_keymaps/digittrade create mode 100644 utils/keytable/rc_keymaps/digittrade.toml delete mode 100644 utils/keytable/rc_keymaps/digitv create mode 100644 utils/keytable/rc_keymaps/digitv.toml delete mode 100644 utils/keytable/rc_keymaps/dm1105_nec create mode 100644 utils/keytable/rc_keymaps/dm1105_nec.toml delete mode 100644 utils/keytable/rc_keymaps/dntv_live_dvb_t create mode 100644 utils/keytable/rc_keymaps/dntv_live_dvb_t.toml delete mode 100644 utils/keytable/rc_keymaps/dntv_live_dvbt_pro create mode 100644 utils/keytable/rc_keymaps/dntv_live_dvbt_pro.toml delete mode 100644 utils/keytable/rc_keymaps/dtt200u create mode 100644 utils/keytable/rc_keymaps/dtt200u.toml delete mode 100644 utils/keytable/rc_keymaps/dvbsky create mode 100644 utils/keytable/rc_keymaps/dvbsky.toml delete mode 100644 utils/keytable/rc_keymaps/dvico_mce create mode 100644 utils/keytable/rc_keymaps/dvico_mce.toml delete mode 100644 utils/keytable/rc_keymaps/dvico_portable create mode 100644 utils/keytable/rc_keymaps/dvico_portable.toml delete mode 100644 utils/keytable/rc_keymaps/em_terratec create mode 100644 utils/keytable/rc_keymaps/em_terratec.toml delete mode 100644 utils/keytable/rc_keymaps/encore_enltv create mode 100644 utils/keytable/rc_keymaps/encore_enltv.toml delete mode 100644 utils/keytable/rc_keymaps/encore_enltv2 create mode 100644 utils/keytable/rc_keymaps/encore_enltv2.toml delete mode 100644 utils/keytable/rc_keymaps/encore_enltv_fm53 create mode 100644 utils/keytable/rc_keymaps/encore_enltv_fm53.toml delete mode 100644 utils/keytable/rc_keymaps/evga_indtube create mode 100644 utils/keytable/rc_keymaps/evga_indtube.toml delete mode 100644 utils/keytable/rc_keymaps/eztv create mode 100644 utils/keytable/rc_keymaps/eztv.toml delete mode 100644 utils/keytable/rc_keymaps/flydvb create mode 100644 utils/keytable/rc_keymaps/flydvb.toml delete mode 100644 utils/keytable/rc_keymaps/flyvideo create mode 100644 utils/keytable/rc_keymaps/flyvideo.toml delete mode 100644 utils/keytable/rc_keymaps/fusionhdtv_mce create mode 100644 utils/keytable/rc_keymaps/fusionhdtv_mce.toml delete mode 100644 utils/keytable/rc_keymaps/gadmei_rm008z create mode 100644 utils/keytable/rc_keymaps/gadmei_rm008z.toml delete mode 100644 utils/keytable/rc_keymaps/geekbox create mode 100644 utils/keytable/rc_keymaps/geekbox.toml delete mode 100644 utils/keytable/rc_keymaps/genius_tvgo_a11mce create mode 100644 utils/keytable/rc_keymaps/genius_tvgo_a11mce.toml delete mode 100644 utils/keytable/rc_keymaps/gotview7135 create mode 100644 utils/keytable/rc_keymaps/gotview7135.toml delete mode 100644 utils/keytable/rc_keymaps/haupp create mode 100644 utils/keytable/rc_keymaps/haupp.toml delete mode 100644 utils/keytable/rc_keymaps/hauppauge create mode 100644 utils/keytable/rc_keymaps/hauppauge.toml delete mode 100644 utils/keytable/rc_keymaps/hisi_poplar create mode 100644 utils/keytable/rc_keymaps/hisi_poplar.toml delete mode 100644 utils/keytable/rc_keymaps/hisi_tv_demo create mode 100644 utils/keytable/rc_keymaps/hisi_tv_demo.toml delete mode 100644 utils/keytable/rc_keymaps/imon_mce create mode 100644 utils/keytable/rc_keymaps/imon_mce.toml delete mode 100644 utils/keytable/rc_keymaps/imon_pad create mode 100644 utils/keytable/rc_keymaps/imon_pad.toml delete mode 100644 utils/keytable/rc_keymaps/imon_rsc create mode 100644 utils/keytable/rc_keymaps/imon_rsc.toml delete mode 100644 utils/keytable/rc_keymaps/iodata_bctv7e create mode 100644 utils/keytable/rc_keymaps/iodata_bctv7e.toml delete mode 100644 utils/keytable/rc_keymaps/it913x_v1 create mode 100644 utils/keytable/rc_keymaps/it913x_v1.toml delete mode 100644 utils/keytable/rc_keymaps/it913x_v2 create mode 100644 utils/keytable/rc_keymaps/it913x_v2.toml delete mode 100644 utils/keytable/rc_keymaps/kaiomy create mode 100644 utils/keytable/rc_keymaps/kaiomy.toml delete mode 100644 utils/keytable/rc_keymaps/kworld_315u create mode 100644 utils/keytable/rc_keymaps/kworld_315u.toml delete mode 100644 utils/keytable/rc_keymaps/kworld_pc150u create mode 100644 utils/keytable/rc_keymaps/kworld_pc150u.toml delete mode 100644 utils/keytable/rc_keymaps/kworld_plus_tv_analog create mode 100644 utils/keytable/rc_keymaps/kworld_plus_tv_analog.toml delete mode 100644 utils/keytable/rc_keymaps/leadtek_y04g0051 create mode 100644 utils/keytable/rc_keymaps/leadtek_y04g0051.toml delete mode 100644 utils/keytable/rc_keymaps/lme2510 create mode 100644 utils/keytable/rc_keymaps/lme2510.toml delete mode 100644 utils/keytable/rc_keymaps/manli create mode 100644 utils/keytable/rc_keymaps/manli.toml delete mode 100644 utils/keytable/rc_keymaps/medion_x10 create mode 100644 utils/keytable/rc_keymaps/medion_x10.toml delete mode 100644 utils/keytable/rc_keymaps/medion_x10_digitainer create mode 100644 utils/keytable/rc_keymaps/medion_x10_digitainer.toml delete mode 100644 utils/keytable/rc_keymaps/medion_x10_or2x create mode 100644 utils/keytable/rc_keymaps/medion_x10_or2x.toml delete mode 100644 utils/keytable/rc_keymaps/megasky create mode 100644 utils/keytable/rc_keymaps/megasky.toml delete mode 100644 utils/keytable/rc_keymaps/msi_digivox_ii create mode 100644 utils/keytable/rc_keymaps/msi_digivox_ii.toml delete mode 100644 utils/keytable/rc_keymaps/msi_digivox_iii create mode 100644 utils/keytable/rc_keymaps/msi_digivox_iii.toml delete mode 100644 utils/keytable/rc_keymaps/msi_tvanywhere create mode 100644 utils/keytable/rc_keymaps/msi_tvanywhere.toml delete mode 100644 utils/keytable/rc_keymaps/msi_tvanywhere_plus create mode 100644 utils/keytable/rc_keymaps/msi_tvanywhere_plus.toml delete mode 100644 utils/keytable/rc_keymaps/nebula create mode 100644 utils/keytable/rc_keymaps/nebula.toml delete mode 100644 utils/keytable/rc_keymaps/nec_terratec_cinergy_xs create mode 100644 utils/keytable/rc_keymaps/nec_terratec_cinergy_xs.toml delete mode 100644 utils/keytable/rc_keymaps/norwood create mode 100644 utils/keytable/rc_keymaps/norwood.toml delete mode 100644 utils/keytable/rc_keymaps/npgtech create mode 100644 utils/keytable/rc_keymaps/npgtech.toml delete mode 100644 utils/keytable/rc_keymaps/opera1 create mode 100644 utils/keytable/rc_keymaps/opera1.toml delete mode 100644 utils/keytable/rc_keymaps/pctv_sedna create mode 100644 utils/keytable/rc_keymaps/pctv_sedna.toml delete mode 100644 utils/keytable/rc_keymaps/pinnacle310e create mode 100644 utils/keytable/rc_keymaps/pinnacle310e.toml delete mode 100644 utils/keytable/rc_keymaps/pinnacle_color create mode 100644 utils/keytable/rc_keymaps/pinnacle_color.toml delete mode 100644 utils/keytable/rc_keymaps/pinnacle_grey create mode 100644 utils/keytable/rc_keymaps/pinnacle_grey.toml delete mode 100644 utils/keytable/rc_keymaps/pinnacle_pctv_hd create mode 100644 utils/keytable/rc_keymaps/pinnacle_pctv_hd.toml delete mode 100644 utils/keytable/rc_keymaps/pixelview create mode 100644 utils/keytable/rc_keymaps/pixelview.toml delete mode 100644 utils/keytable/rc_keymaps/pixelview_002t create mode 100644 utils/keytable/rc_keymaps/pixelview_002t.toml delete mode 100644 utils/keytable/rc_keymaps/pixelview_mk12 create mode 100644 utils/keytable/rc_keymaps/pixelview_mk12.toml delete mode 100644 utils/keytable/rc_keymaps/pixelview_new create mode 100644 utils/keytable/rc_keymaps/pixelview_new.toml delete mode 100644 utils/keytable/rc_keymaps/powercolor_real_angel create mode 100644 utils/keytable/rc_keymaps/powercolor_real_angel.toml delete mode 100644 utils/keytable/rc_keymaps/proteus_2309 create mode 100644 utils/keytable/rc_keymaps/proteus_2309.toml delete mode 100644 utils/keytable/rc_keymaps/purpletv create mode 100644 utils/keytable/rc_keymaps/purpletv.toml delete mode 100644 utils/keytable/rc_keymaps/pv951 create mode 100644 utils/keytable/rc_keymaps/pv951.toml delete mode 100644 utils/keytable/rc_keymaps/rc6_mce create mode 100644 utils/keytable/rc_keymaps/rc6_mce.toml delete mode 100644 utils/keytable/rc_keymaps/real_audio_220_32_keys create mode 100644 utils/keytable/rc_keymaps/real_audio_220_32_keys.toml delete mode 100644 utils/keytable/rc_keymaps/reddo create mode 100644 utils/keytable/rc_keymaps/reddo.toml delete mode 100644 utils/keytable/rc_keymaps/snapstream_firefly create mode 100644 utils/keytable/rc_keymaps/snapstream_firefly.toml delete mode 100644 utils/keytable/rc_keymaps/streamzap create mode 100644 utils/keytable/rc_keymaps/streamzap.toml delete mode 100644 utils/keytable/rc_keymaps/su3000 create mode 100644 utils/keytable/rc_keymaps/su3000.toml delete mode 100644 utils/keytable/rc_keymaps/tango create mode 100644 utils/keytable/rc_keymaps/tango.toml delete mode 100644 utils/keytable/rc_keymaps/tbs_nec create mode 100644 utils/keytable/rc_keymaps/tbs_nec.toml delete mode 100644 utils/keytable/rc_keymaps/technisat_ts35 create mode 100644 utils/keytable/rc_keymaps/technisat_ts35.toml delete mode 100644 utils/keytable/rc_keymaps/technisat_usb2 create mode 100644 utils/keytable/rc_keymaps/technisat_usb2.toml delete mode 100644 utils/keytable/rc_keymaps/terratec_cinergy_c_pci create mode 100644 utils/keytable/rc_keymaps/terratec_cinergy_c_pci.toml delete mode 100644 utils/keytable/rc_keymaps/terratec_cinergy_s2_hd create mode 100644 utils/keytable/rc_keymaps/terratec_cinergy_s2_hd.toml delete mode 100644 utils/keytable/rc_keymaps/terratec_cinergy_xs create mode 100644 utils/keytable/rc_keymaps/terratec_cinergy_xs.toml delete mode 100644 utils/keytable/rc_keymaps/terratec_slim create mode 100644 utils/keytable/rc_keymaps/terratec_slim.toml delete mode 100644 utils/keytable/rc_keymaps/terratec_slim_2 create mode 100644 utils/keytable/rc_keymaps/terratec_slim_2.toml delete mode 100644 utils/keytable/rc_keymaps/tevii_nec create mode 100644 utils/keytable/rc_keymaps/tevii_nec.toml delete mode 100644 utils/keytable/rc_keymaps/tivo create mode 100644 utils/keytable/rc_keymaps/tivo.toml delete mode 100644 utils/keytable/rc_keymaps/total_media_in_hand create mode 100644 utils/keytable/rc_keymaps/total_media_in_hand.toml delete mode 100644 utils/keytable/rc_keymaps/total_media_in_hand_02 create mode 100644 utils/keytable/rc_keymaps/total_media_in_hand_02.toml delete mode 100644 utils/keytable/rc_keymaps/trekstor create mode 100644 utils/keytable/rc_keymaps/trekstor.toml delete mode 100644 utils/keytable/rc_keymaps/tt_1500 create mode 100644 utils/keytable/rc_keymaps/tt_1500.toml delete mode 100644 utils/keytable/rc_keymaps/tvwalkertwin create mode 100644 utils/keytable/rc_keymaps/tvwalkertwin.toml delete mode 100644 utils/keytable/rc_keymaps/twinhan_dtv_cab_ci create mode 100644 utils/keytable/rc_keymaps/twinhan_dtv_cab_ci.toml delete mode 100644 utils/keytable/rc_keymaps/twinhan_vp1027_dvbs create mode 100644 utils/keytable/rc_keymaps/twinhan_vp1027_dvbs.toml delete mode 100644 utils/keytable/rc_keymaps/videomate_k100 create mode 100644 utils/keytable/rc_keymaps/videomate_k100.toml delete mode 100644 utils/keytable/rc_keymaps/videomate_s350 create mode 100644 utils/keytable/rc_keymaps/videomate_s350.toml delete mode 100644 utils/keytable/rc_keymaps/videomate_tv_pvr create mode 100644 utils/keytable/rc_keymaps/videomate_tv_pvr.toml delete mode 100644 utils/keytable/rc_keymaps/vp702x create mode 100644 utils/keytable/rc_keymaps/vp702x.toml delete mode 100644 utils/keytable/rc_keymaps/winfast create mode 100644 utils/keytable/rc_keymaps/winfast.toml delete mode 100644 utils/keytable/rc_keymaps/winfast_usbii_deluxe create mode 100644 utils/keytable/rc_keymaps/winfast_usbii_deluxe.toml delete mode 100644 utils/keytable/rc_keymaps/wobo_i5 delete mode 100644 utils/keytable/rc_keymaps/zx_irdec create mode 100644 utils/keytable/rc_keymaps/zx_irdec.toml delete mode 100644 utils/keytable/rc_keymaps_userspace/allwinner_ba10_tv_box create mode 100644 utils/keytable/rc_keymaps_userspace/allwinner_ba10_tv_box.toml delete mode 100644 utils/keytable/rc_keymaps_userspace/allwinner_i12_a20_tv_box create mode 100644 utils/keytable/rc_keymaps_userspace/allwinner_i12_a20_tv_box.toml delete mode 100644 utils/keytable/rc_keymaps_userspace/wobo_i5 create mode 100644 utils/keytable/rc_keymaps_userspace/wobo_i5.toml create mode 100644 utils/keytable/toml.c create mode 100644 utils/keytable/toml.h
Signature · 1 line
2.17.1
PATCH v3 1/5 keytable: add support for BPF based protocols
We use a modified version of samples/bpf/bpf_load.c from the linux kernel tree to load elf based BPF protocols and display the BPF program names.
Any global int variables can be overrided from the command line. The immediate values are patched in the BPF LD instructions.
Write a BPF protocol decoder in C, and compile with:
clang -O2 -c --target=bpf foo.c
Now you can load the object file like so:
ir-keytable -p foo.o -v
Any parameters can be specified using -e name=value.
--- Makefile.am | 4 +- configure.ac | 11 + include/linux/bpf.h | 2669 +++++++++++++++++++++++++++++++ utils/keytable/Makefile.am | 7 +- utils/keytable/bpf.c | 515 ++++++ utils/keytable/bpf.h | 110 ++ utils/keytable/bpf_load.c | 455 ++++++ utils/keytable/bpf_load.h | 43 + utils/keytable/ir-keytable.1.in | 14 +- utils/keytable/keytable.c | 318 +++- v4l-utils.spec.in | 2 +- 11 files changed, 4117 insertions(+), 31 deletions(-) create mode 100644 include/linux/bpf.h create mode 100644 utils/keytable/bpf.c create mode 100644 utils/keytable/bpf.h create mode 100644 utils/keytable/bpf_load.c create mode 100644 utils/keytable/bpf_load.h
Makefile.am +3 -1
@@ -25,7 +25,8 @@ sync-with-kernel: ! -f $(KERNEL_DIR)/usr/include/linux/ivtv.h -o \ ! -f $(KERNEL_DIR)/usr/include/linux/dvb/frontend.h -o \ ! -f $(KERNEL_DIR)/usr/include/linux/dvb/dmx.h -o \ - ! -f $(KERNEL_DIR)/usr/include/linux/lirc.h ]; then \ + ! -f $(KERNEL_DIR)/usr/include/linux/lirc.h -o \ + ! -f $(KERNEL_DIR)/usr/include/linux/bpf.h ]; then \ echo "Error you must set KERNEL_DIR to point to an extracted kernel source dir"; \ echo "and run 'make headers_install' in \$$KERNEL_DIR."; \ exit 1; \
@@ -43,6 +44,7 @@ sync-with-kernel: cp $(top_srcdir)/include/linux/dvb/frontend.h $(top_srcdir)/lib/include/libdvbv5/dvb-frontend.h cp -a $(KERNEL_DIR)/usr/include/linux/dvb/dmx.h $(top_srcdir)/include/linux/dvb cp -a $(KERNEL_DIR)/usr/include/linux/lirc.h $(top_srcdir)/include/linux + cp -a $(KERNEL_DIR)/usr/include/linux/bpf.h $(top_srcdir)/include/linux cp -a $(KERNEL_DIR)/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c $(top_srcdir)/utils/common cp -a $(KERNEL_DIR)/drivers/media/common/v4l2-tpg/v4l2-tpg-colors.c $(top_srcdir)/utils/common cp -a $(KERNEL_DIR)/include/media/tpg/v4l2-tpg* $(top_srcdir)/utils/common
configure.ac +11 -0
@@ -167,6 +167,16 @@ AC_SUBST([X11_CFLAGS]) AC_SUBST([X11_LIBS]) AM_CONDITIONAL([HAVE_X11], [test x$x11_pkgconfig = xyes]) +PKG_CHECK_MODULES([LIBELF], [libelf], [libelf_pkgconfig=yes], [libelf_pkgconfig=no]) +AC_SUBST([LIBELF_CFLAGS]) +AC_SUBST([LIBELF_LIBS]) +AM_CONDITIONAL([HAVE_LIBELF], [test x$libelf_pkgconfig = xyes]) +if test "x$libelf_pkgconfig" = "xyes"; then + AC_DEFINE([HAVE_LIBELF], [1], [libelf library is present]) +else + AC_MSG_WARN(libelf library not available) +fi + AS_IF([test "x$x11_pkgconfig" = xyes], [PKG_CHECK_MODULES(GL, [gl], [gl_pkgconfig=yes], [gl_pkgconfig=no])], [gl_pkgconfig=no]) AC_SUBST([GL_CFLAGS])
@@ -497,6 +507,7 @@ compile time options summary X11 : $x11_pkgconfig GL : $gl_pkgconfig glu : $glu_pkgconfig + libelf : $libelf_pkgconfig libjpeg : $have_jpeg libudev : $have_libudev pthread : $have_pthread
include/linux/bpf.h new file +2669 -0
2,669 lines not on this page · raw message
utils/keytable/Makefile.am +6 -1
@@ -5,8 +5,13 @@ keytablesystem_DATA = $(srcdir)/rc_keymaps/* udevrules_DATA = 70-infrared.rules ir_keytable_SOURCES = keytable.c parse.h ir-encode.c ir-encode.h + +if HAVE_LIBELF +ir_keytable_SOURCES += bpf.c bpf_load.c bpf.h bpf_load.h +endif + ir_keytable_LDADD = @LIBINTL@ -ir_keytable_LDFLAGS = $(ARGP_LIBS) +ir_keytable_LDFLAGS = $(ARGP_LIBS) $(LIBELF_LIBS) EXTRA_DIST = 70-infrared.rules rc_keymaps rc_keymaps_userspace gen_keytables.pl ir-keytable.1 rc_maps.cfg
utils/keytable/bpf.c new file +515 -0
278 lines not on this page · raw message
utils/keytable/bpf.h new file +110 -0
110 lines not on this page · raw message
utils/keytable/bpf_load.c new file +455 -0
455 lines not on this page · raw message
utils/keytable/bpf_load.h new file +43 -0
43 lines not on this page · raw message
utils/keytable/keytable.c +293 -25
318 lines not on this page · raw message
The rest of this diff is not shown. View the raw message.
Signature · 1 line
2.17.1
Part of the diff is not shown here. View the raw message.
PATCH v3 2/5 keytable: add bpf protocols
In reply to Sean YoungAdd a few BPF protocols and infrastructure for building them.
--- configure.ac | 4 + utils/keytable/Makefile.am | 4 + utils/keytable/bpf_protocols/Makefile.am | 21 ++ utils/keytable/bpf_protocols/bpf_helpers.h | 315 ++++++++++++++++++ utils/keytable/bpf_protocols/grundig.c | 126 +++++++ utils/keytable/bpf_protocols/manchester.c | 167 ++++++++++ utils/keytable/bpf_protocols/pulse_distance.c | 156 +++++++++ utils/keytable/bpf_protocols/pulse_length.c | 152 +++++++++ utils/keytable/bpf_protocols/rc_mm.c | 139 ++++++++ v4l-utils.spec.in | 2 +- 10 files changed, 1085 insertions(+), 1 deletion(-) create mode 100644 utils/keytable/bpf_protocols/Makefile.am create mode 100644 utils/keytable/bpf_protocols/bpf_helpers.h create mode 100644 utils/keytable/bpf_protocols/grundig.c create mode 100644 utils/keytable/bpf_protocols/manchester.c create mode 100644 utils/keytable/bpf_protocols/pulse_distance.c create mode 100644 utils/keytable/bpf_protocols/pulse_length.c create mode 100644 utils/keytable/bpf_protocols/rc_mm.c
configure.ac +4 -0
@@ -23,6 +23,7 @@ AC_CONFIG_FILES([Makefile utils/libmedia_dev/Makefile utils/dvb/Makefile utils/keytable/Makefile + utils/keytable/bpf_protocols/Makefile utils/ir-ctl/Makefile utils/cx18-ctl/Makefile utils/ivtv-ctl/Makefile
@@ -172,11 +173,14 @@ AC_SUBST([LIBELF_CFLAGS]) AC_SUBST([LIBELF_LIBS]) AM_CONDITIONAL([HAVE_LIBELF], [test x$libelf_pkgconfig = xyes]) if test "x$libelf_pkgconfig" = "xyes"; then + AC_CHECK_PROG([CLANG], clang, clang) AC_DEFINE([HAVE_LIBELF], [1], [libelf library is present]) else AC_MSG_WARN(libelf library not available) fi +AM_CONDITIONAL([BPF_PROTOCOLS], [test x$CLANG = xclang]) + AS_IF([test "x$x11_pkgconfig" = xyes], [PKG_CHECK_MODULES(GL, [gl], [gl_pkgconfig=yes], [gl_pkgconfig=no])], [gl_pkgconfig=no]) AC_SUBST([GL_CFLAGS])
utils/keytable/Makefile.am +4 -0
@@ -13,6 +13,10 @@ endif ir_keytable_LDADD = @LIBINTL@ ir_keytable_LDFLAGS = $(ARGP_LIBS) $(LIBELF_LIBS) +if BPF_PROTOCOLS +SUBDIRS = bpf_protocols +endif + EXTRA_DIST = 70-infrared.rules rc_keymaps rc_keymaps_userspace gen_keytables.pl ir-keytable.1 rc_maps.cfg # custom target
utils/keytable/bpf_protocols/Makefile.am new file +21 -0
@@ -0,0 +1,21 @@ +# Get Clang's default includes on this system, as opposed to those seen by +# '-target bpf'. This fixes "missing" files on some architectures/distros, +# such as asm/byteorder.h, asm/socket.h, asm/sockios.h, sys/cdefs.h etc. +# +# Use '-idirafter': Don't interfere with include mechanics except where the +# build would have failed anyways. +CLANG_SYS_INCLUDES := $(shell $(CLANG) -v -E - </dev/null 2>&1 \ + | sed -n '/<...> search starts here:/,/End of search list./{ s| \(/.*\)|-idirafter \1|p }') + +%.o: %.c + $(CLANG) $(CLANG_SYS_INCLUDES) -I$(top_srcdir)/include -target bpf -O2 -c $< + +PROTOCOLS = grundig.o pulse_distance.o pulse_length.o rc_mm.o manchester.o + +all: $(PROTOCOLS) + +# custom target +install-data-local: + $(install_sh) -d "$(DESTDIR)$(keytableuserdir)/protocols" + $(install_sh) -d "$(DESTDIR)$(keytablesystemdir)/protocols" + $(install_sh) $(PROTOCOLS) "$(DESTDIR)$(keytablesystemdir)/protocols"
utils/keytable/bpf_protocols/bpf_helpers.h new file +315 -0
315 lines not on this page · raw message
utils/keytable/bpf_protocols/grundig.c new file +126 -0
126 lines not on this page · raw message
utils/keytable/bpf_protocols/manchester.c new file +167 -0
167 lines not on this page · raw message
utils/keytable/bpf_protocols/pulse_distance.c new file +156 -0
156 lines not on this page · raw message
utils/keytable/bpf_protocols/pulse_length.c new file +152 -0
152 lines not on this page · raw message
utils/keytable/bpf_protocols/rc_mm.c new file +139 -0
139 lines not on this page · raw message
v4l-utils.spec.in +1 -1
@@ -10,7 +10,7 @@ Source0: http://linuxtv.org/downloads/v4l-utils/v4l-utils-%{version}.tar. Source1: qv4l2.desktop Source2: qv4l2.svg BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: qt4-devel libsysfs-devel kernel-headers desktop-file-utils elfutils-libelf-devel +BuildRequires: qt4-devel libsysfs-devel kernel-headers desktop-file-utils elfutils-libelf-devel clang # For /etc/udev/rules.d ownership Requires: udev Requires: libv4l = %{version}-%{release}
Signature · 1 line
2.17.1
PATCH v3 3/5 keytable: add toml keymap reader
In reply to Sean YoungWe would like to define BPF based IR protocols from rc_keymaps. We will need per-protocol parameters, so we need a more flexible format than the existing plain-text format.
At some point in the future it would nice to change rc-core keycode mapping to protocol + 64 bit scancode -> keycode, rather the existing 32 bit scancode -> keycode. In order to make this possible, we want the scancodes to be specified for their protocol, in case multiple protocols are selected.
--- utils/keytable/Makefile.am | 2 +- utils/keytable/bpf_load.c | 21 +- utils/keytable/bpf_load.h | 2 +- utils/keytable/keytable.c | 222 ++++- utils/keytable/toml.c | 1903 ++++++++++++++++++++++++++++++++++++ utils/keytable/toml.h | 110 +++ 6 files changed, 2250 insertions(+), 10 deletions(-) create mode 100644 utils/keytable/toml.c create mode 100644 utils/keytable/toml.h
utils/keytable/Makefile.am +1 -1
@@ -4,7 +4,7 @@ sysconf_DATA = rc_maps.cfg keytablesystem_DATA = $(srcdir)/rc_keymaps/* udevrules_DATA = 70-infrared.rules -ir_keytable_SOURCES = keytable.c parse.h ir-encode.c ir-encode.h +ir_keytable_SOURCES = keytable.c parse.h ir-encode.c ir-encode.h toml.c toml.h if HAVE_LIBELF ir_keytable_SOURCES += bpf.c bpf_load.c bpf.h bpf_load.h
utils/keytable/bpf_load.c +19 -2
@@ -13,6 +13,7 @@#include <stdlib.h> #include <linux/bpf.h> #include <assert.h> +#include "toml.h" #include "bpf.h" #include "bpf_load.h"
@@ -43,6 +44,7 @@ struct bpf_file {Elf_Data *data;int strtabidx;Elf_Data *symbols; +struct toml_table_t *toml; };static int load_and_attach (int lirc_fd,struct bpf_file *bpf_file,const char *name,struct bpf_insn *prog,int size)
@@ -184,6 +186,21 @@ static int parse_relo_and_apply(struct bpf_file *bpf_file, GElf_Shdr *shdr,if (!bpf_param (sym_name, &value)) {// done + }else if (bpf_file->toml && + (raw =toml_raw_in (bpf_file->toml, sym_name)) !=NULL ) { +int64_t val64; + +if (toml_rtoi (raw, &val64)) { +printf (_ ("variable %s not a integer: %s\n" ), sym_name, raw); +return 1 ; + } + +if (value <INT_MIN && value >UINT_MAX ) { +printf (_ ("variable %s out of range: %s\n" ), sym_name, raw); +return 1 ; + } + + value = val64; }else if (sym.st_shndx == bpf_file->dataidx) {int32_t *p = (bpf_file->data->d_buf + sym.st_value); value = *p;
@@ -324,9 +341,9 @@ static int load_elf_maps_section(struct bpf_file *bpf_file)return nr_maps; } -int load_bpf_file (const char *path,int lirc_fd) +int load_bpf_file (const char *path,int lirc_fd,struct toml_table_t *toml) { -struct bpf_file bpf_file = {}; +struct bpf_file bpf_file = { .toml = toml };int fd, i, ret;Elf *elf;GElf_Ehdr ehdr;
utils/keytable/bpf_load.h +1 -1
@@ -36,7 +36,7 @@ struct bpf_map_data {* * returns zero on success */ -int load_bpf_file (const char *path,int lirc_fd); +int load_bpf_file (const char *path,int lirc_fd,struct toml_table_t *toml);int bpf_param (const char *name,int *val);
utils/keytable/keytable.c +216 -6
282 lines not on this page · raw message
utils/keytable/toml.c new file +1903 -0
1,903 lines not on this page · raw message
utils/keytable/toml.h new file +110 -0
110 lines not on this page · raw message
Signature · 1 line
2.17.1
PATCH v3 4/5 keytable: convert keymaps to new toml format
In reply to Sean YoungConvert all the existing keymaps to toml, so that only one format is used.
Include the protocol variant as well. This will be useful in the future if we want to use rc keymaps for transmitting IR.
--- utils/keytable/gen_keytables.pl | 33 ++- utils/keytable/ir-keytable.1.in | 4 +- utils/keytable/rc_keymaps/adstech_dvb_t_pci | 45 --- .../rc_keymaps/adstech_dvb_t_pci.toml | 48 ++++ utils/keytable/rc_keymaps/af9005 | 37 --- utils/keytable/rc_keymaps/af9005.toml | 40 +++ utils/keytable/rc_keymaps/alink_dtu_m | 19 -- utils/keytable/rc_keymaps/alink_dtu_m.toml | 23 ++ .../keytable/rc_keymaps/allwinner_ba10_tv_box | 15 - .../rc_keymaps/allwinner_i12_a20_tv_box | 28 -- utils/keytable/rc_keymaps/anysee | 45 --- utils/keytable/rc_keymaps/anysee.toml | 49 ++++ utils/keytable/rc_keymaps/apac_viewcomp | 32 --- utils/keytable/rc_keymaps/apac_viewcomp.toml | 35 +++ utils/keytable/rc_keymaps/astrometa_t2hybrid | 22 -- .../rc_keymaps/astrometa_t2hybrid.toml | 26 ++ utils/keytable/rc_keymaps/asus_pc39 | 40 --- utils/keytable/rc_keymaps/asus_pc39.toml | 44 +++ utils/keytable/rc_keymaps/asus_ps3_100 | 42 --- utils/keytable/rc_keymaps/asus_ps3_100.toml | 46 +++ .../keytable/rc_keymaps/ati_tv_wonder_hd_600 | 25 -- .../rc_keymaps/ati_tv_wonder_hd_600.toml | 28 ++ utils/keytable/rc_keymaps/ati_x10 | 49 ---- utils/keytable/rc_keymaps/ati_x10.toml | 52 ++++ utils/keytable/rc_keymaps/avermedia | 37 --- utils/keytable/rc_keymaps/avermedia.toml | 40 +++ utils/keytable/rc_keymaps/avermedia_a16d | 35 --- utils/keytable/rc_keymaps/avermedia_a16d.toml | 38 +++ utils/keytable/rc_keymaps/avermedia_cardbus | 55 ---- .../rc_keymaps/avermedia_cardbus.toml | 58 ++++ utils/keytable/rc_keymaps/avermedia_dvbt | 35 --- utils/keytable/rc_keymaps/avermedia_dvbt.toml | 38 +++ utils/keytable/rc_keymaps/avermedia_m135a | 81 ------ .../keytable/rc_keymaps/avermedia_m135a.toml | 85 ++++++ .../keytable/rc_keymaps/avermedia_m733a_rm_k6 | 45 --- .../rc_keymaps/avermedia_m733a_rm_k6.toml | 49 ++++ utils/keytable/rc_keymaps/avermedia_rm_ks | 28 -- .../keytable/rc_keymaps/avermedia_rm_ks.toml | 32 +++ utils/keytable/rc_keymaps/avertv_303 | 37 --- utils/keytable/rc_keymaps/avertv_303.toml | 40 +++ utils/keytable/rc_keymaps/az6027 | 3 - utils/keytable/rc_keymaps/az6027.toml | 6 + utils/keytable/rc_keymaps/azurewave_ad_tu700 | 54 ---- .../rc_keymaps/azurewave_ad_tu700.toml | 58 ++++ utils/keytable/rc_keymaps/behold | 35 --- utils/keytable/rc_keymaps/behold.toml | 39 +++ utils/keytable/rc_keymaps/behold_columbus | 29 -- .../keytable/rc_keymaps/behold_columbus.toml | 32 +++ utils/keytable/rc_keymaps/budget_ci_old | 46 --- utils/keytable/rc_keymaps/budget_ci_old.toml | 49 ++++ utils/keytable/rc_keymaps/cec | 98 ------- utils/keytable/rc_keymaps/cec.toml | 101 +++++++ utils/keytable/rc_keymaps/cinergy | 37 --- utils/keytable/rc_keymaps/cinergy.toml | 40 +++ utils/keytable/rc_keymaps/cinergy_1400 | 38 --- utils/keytable/rc_keymaps/cinergy_1400.toml | 41 +++ utils/keytable/rc_keymaps/cinergyt2 | 38 --- utils/keytable/rc_keymaps/cinergyt2.toml | 41 +++ utils/keytable/rc_keymaps/d680_dmb | 36 --- utils/keytable/rc_keymaps/d680_dmb.toml | 39 +++ utils/keytable/rc_keymaps/delock_61959 | 33 --- utils/keytable/rc_keymaps/delock_61959.toml | 37 +++ utils/keytable/rc_keymaps/dib0700_nec | 71 ----- utils/keytable/rc_keymaps/dib0700_nec.toml | 75 +++++ utils/keytable/rc_keymaps/dib0700_rc5 | 181 ------------ utils/keytable/rc_keymaps/dib0700_rc5.toml | 185 ++++++++++++ utils/keytable/rc_keymaps/dibusb | 112 -------- utils/keytable/rc_keymaps/dibusb.toml | 115 ++++++++ utils/keytable/rc_keymaps/digitalnow_tinytwin | 50 ---- .../rc_keymaps/digitalnow_tinytwin.toml | 54 ++++ utils/keytable/rc_keymaps/digittrade | 29 -- utils/keytable/rc_keymaps/digittrade.toml | 33 +++ utils/keytable/rc_keymaps/digitv | 56 ---- utils/keytable/rc_keymaps/digitv.toml | 59 ++++ utils/keytable/rc_keymaps/dm1105_nec | 32 --- utils/keytable/rc_keymaps/dm1105_nec.toml | 35 +++ utils/keytable/rc_keymaps/dntv_live_dvb_t | 33 --- .../keytable/rc_keymaps/dntv_live_dvb_t.toml | 36 +++ utils/keytable/rc_keymaps/dntv_live_dvbt_pro | 54 ---- .../rc_keymaps/dntv_live_dvbt_pro.toml | 57 ++++ utils/keytable/rc_keymaps/dtt200u | 19 -- utils/keytable/rc_keymaps/dtt200u.toml | 23 ++ utils/keytable/rc_keymaps/dvbsky | 33 --- utils/keytable/rc_keymaps/dvbsky.toml | 37 +++ utils/keytable/rc_keymaps/dvico_mce | 46 --- utils/keytable/rc_keymaps/dvico_mce.toml | 50 ++++ utils/keytable/rc_keymaps/dvico_portable | 37 --- utils/keytable/rc_keymaps/dvico_portable.toml | 41 +++ utils/keytable/rc_keymaps/em_terratec | 29 -- utils/keytable/rc_keymaps/em_terratec.toml | 32 +++ utils/keytable/rc_keymaps/encore_enltv | 53 ---- utils/keytable/rc_keymaps/encore_enltv.toml | 56 ++++ utils/keytable/rc_keymaps/encore_enltv2 | 40 --- utils/keytable/rc_keymaps/encore_enltv2.toml | 43 +++ utils/keytable/rc_keymaps/encore_enltv_fm53 | 30 -- .../rc_keymaps/encore_enltv_fm53.toml | 33 +++ utils/keytable/rc_keymaps/evga_indtube | 17 -- utils/keytable/rc_keymaps/evga_indtube.toml | 20 ++ utils/keytable/rc_keymaps/eztv | 45 --- utils/keytable/rc_keymaps/eztv.toml | 48 ++++ utils/keytable/rc_keymaps/flydvb | 33 --- utils/keytable/rc_keymaps/flydvb.toml | 36 +++ utils/keytable/rc_keymaps/flyvideo | 28 -- utils/keytable/rc_keymaps/flyvideo.toml | 31 ++ utils/keytable/rc_keymaps/fusionhdtv_mce | 46 --- utils/keytable/rc_keymaps/fusionhdtv_mce.toml | 49 ++++ utils/keytable/rc_keymaps/gadmei_rm008z | 32 --- utils/keytable/rc_keymaps/gadmei_rm008z.toml | 35 +++ utils/keytable/rc_keymaps/geekbox | 13 - utils/keytable/rc_keymaps/geekbox.toml | 17 ++ utils/keytable/rc_keymaps/genius_tvgo_a11mce | 33 --- .../rc_keymaps/genius_tvgo_a11mce.toml | 36 +++ utils/keytable/rc_keymaps/gotview7135 | 35 --- utils/keytable/rc_keymaps/gotview7135.toml | 38 +++ utils/keytable/rc_keymaps/haupp | 46 --- utils/keytable/rc_keymaps/haupp.toml | 49 ++++ utils/keytable/rc_keymaps/hauppauge | 173 ----------- utils/keytable/rc_keymaps/hauppauge.toml | 177 ++++++++++++ utils/keytable/rc_keymaps/hisi_poplar | 30 -- utils/keytable/rc_keymaps/hisi_poplar.toml | 34 +++ utils/keytable/rc_keymaps/hisi_tv_demo | 42 --- utils/keytable/rc_keymaps/hisi_tv_demo.toml | 46 +++ utils/keytable/rc_keymaps/imon_mce | 78 ----- utils/keytable/rc_keymaps/imon_mce.toml | 82 ++++++ utils/keytable/rc_keymaps/imon_pad | 91 ------ utils/keytable/rc_keymaps/imon_pad.toml | 94 ++++++ utils/keytable/rc_keymaps/imon_rsc | 44 --- utils/keytable/rc_keymaps/imon_rsc.toml | 48 ++++ utils/keytable/rc_keymaps/iodata_bctv7e | 37 --- utils/keytable/rc_keymaps/iodata_bctv7e.toml | 40 +++ utils/keytable/rc_keymaps/it913x_v1 | 53 ---- utils/keytable/rc_keymaps/it913x_v1.toml | 57 ++++ utils/keytable/rc_keymaps/it913x_v2 | 48 ---- utils/keytable/rc_keymaps/it913x_v2.toml | 52 ++++ utils/keytable/rc_keymaps/kaiomy | 33 --- utils/keytable/rc_keymaps/kaiomy.toml | 36 +++ utils/keytable/rc_keymaps/kworld_315u | 33 --- utils/keytable/rc_keymaps/kworld_315u.toml | 37 +++ utils/keytable/rc_keymaps/kworld_pc150u | 45 --- utils/keytable/rc_keymaps/kworld_pc150u.toml | 48 ++++ .../keytable/rc_keymaps/kworld_plus_tv_analog | 32 --- .../rc_keymaps/kworld_plus_tv_analog.toml | 35 +++ utils/keytable/rc_keymaps/leadtek_y04g0051 | 51 ---- .../keytable/rc_keymaps/leadtek_y04g0051.toml | 55 ++++ utils/keytable/rc_keymaps/lme2510 | 67 ----- utils/keytable/rc_keymaps/lme2510.toml | 71 +++++ utils/keytable/rc_keymaps/manli | 32 --- utils/keytable/rc_keymaps/manli.toml | 35 +++ utils/keytable/rc_keymaps/medion_x10 | 54 ---- utils/keytable/rc_keymaps/medion_x10.toml | 57 ++++ .../keytable/rc_keymaps/medion_x10_digitainer | 50 ---- .../rc_keymaps/medion_x10_digitainer.toml | 53 ++++ utils/keytable/rc_keymaps/medion_x10_or2x | 46 --- .../keytable/rc_keymaps/medion_x10_or2x.toml | 49 ++++ utils/keytable/rc_keymaps/megasky | 17 -- utils/keytable/rc_keymaps/megasky.toml | 20 ++ utils/keytable/rc_keymaps/msi_digivox_ii | 19 -- utils/keytable/rc_keymaps/msi_digivox_ii.toml | 23 ++ utils/keytable/rc_keymaps/msi_digivox_iii | 33 --- .../keytable/rc_keymaps/msi_digivox_iii.toml | 37 +++ utils/keytable/rc_keymaps/msi_tvanywhere | 25 -- utils/keytable/rc_keymaps/msi_tvanywhere.toml | 28 ++ utils/keytable/rc_keymaps/msi_tvanywhere_plus | 37 --- .../rc_keymaps/msi_tvanywhere_plus.toml | 40 +++ utils/keytable/rc_keymaps/nebula | 56 ---- utils/keytable/rc_keymaps/nebula.toml | 60 ++++ .../rc_keymaps/nec_terratec_cinergy_xs | 86 ------ .../rc_keymaps/nec_terratec_cinergy_xs.toml | 90 ++++++ utils/keytable/rc_keymaps/norwood | 36 --- utils/keytable/rc_keymaps/norwood.toml | 39 +++ utils/keytable/rc_keymaps/npgtech | 36 --- utils/keytable/rc_keymaps/npgtech.toml | 39 +++ utils/keytable/rc_keymaps/opera1 | 27 -- utils/keytable/rc_keymaps/opera1.toml | 30 ++ utils/keytable/rc_keymaps/pctv_sedna | 33 --- utils/keytable/rc_keymaps/pctv_sedna.toml | 36 +++ utils/keytable/rc_keymaps/pinnacle310e | 54 ---- utils/keytable/rc_keymaps/pinnacle310e.toml | 57 ++++ utils/keytable/rc_keymaps/pinnacle_color | 43 --- utils/keytable/rc_keymaps/pinnacle_color.toml | 46 +++ utils/keytable/rc_keymaps/pinnacle_grey | 42 --- utils/keytable/rc_keymaps/pinnacle_grey.toml | 45 +++ utils/keytable/rc_keymaps/pinnacle_pctv_hd | 27 -- .../keytable/rc_keymaps/pinnacle_pctv_hd.toml | 31 ++ utils/keytable/rc_keymaps/pixelview | 33 --- utils/keytable/rc_keymaps/pixelview.toml | 36 +++ utils/keytable/rc_keymaps/pixelview_002t | 27 -- utils/keytable/rc_keymaps/pixelview_002t.toml | 31 ++ utils/keytable/rc_keymaps/pixelview_mk12 | 32 --- utils/keytable/rc_keymaps/pixelview_mk12.toml | 36 +++ utils/keytable/rc_keymaps/pixelview_new | 32 --- utils/keytable/rc_keymaps/pixelview_new.toml | 35 +++ .../keytable/rc_keymaps/powercolor_real_angel | 36 --- .../rc_keymaps/powercolor_real_angel.toml | 39 +++ utils/keytable/rc_keymaps/proteus_2309 | 25 -- utils/keytable/rc_keymaps/proteus_2309.toml | 28 ++ utils/keytable/rc_keymaps/purpletv | 36 --- utils/keytable/rc_keymaps/purpletv.toml | 39 +++ utils/keytable/rc_keymaps/pv951 | 32 --- utils/keytable/rc_keymaps/pv951.toml | 35 +++ utils/keytable/rc_keymaps/rc6_mce | 65 ----- utils/keytable/rc_keymaps/rc6_mce.toml | 69 +++++ .../rc_keymaps/real_audio_220_32_keys | 29 -- .../rc_keymaps/real_audio_220_32_keys.toml | 32 +++ utils/keytable/rc_keymaps/reddo | 24 -- utils/keytable/rc_keymaps/reddo.toml | 28 ++ utils/keytable/rc_keymaps/snapstream_firefly | 49 ---- .../rc_keymaps/snapstream_firefly.toml | 52 ++++ utils/keytable/rc_keymaps/streamzap | 36 --- utils/keytable/rc_keymaps/streamzap.toml | 39 +++ utils/keytable/rc_keymaps/su3000 | 36 --- utils/keytable/rc_keymaps/su3000.toml | 40 +++ utils/keytable/rc_keymaps/tango | 51 ---- utils/keytable/rc_keymaps/tango.toml | 55 ++++ utils/keytable/rc_keymaps/tbs_nec | 35 --- utils/keytable/rc_keymaps/tbs_nec.toml | 38 +++ utils/keytable/rc_keymaps/technisat_ts35 | 34 --- utils/keytable/rc_keymaps/technisat_ts35.toml | 37 +++ utils/keytable/rc_keymaps/technisat_usb2 | 34 --- utils/keytable/rc_keymaps/technisat_usb2.toml | 38 +++ .../rc_keymaps/terratec_cinergy_c_pci | 49 ---- .../rc_keymaps/terratec_cinergy_c_pci.toml | 52 ++++ .../rc_keymaps/terratec_cinergy_s2_hd | 49 ---- .../rc_keymaps/terratec_cinergy_s2_hd.toml | 52 ++++ utils/keytable/rc_keymaps/terratec_cinergy_xs | 48 ---- .../rc_keymaps/terratec_cinergy_xs.toml | 51 ++++ utils/keytable/rc_keymaps/terratec_slim | 29 -- utils/keytable/rc_keymaps/terratec_slim.toml | 33 +++ utils/keytable/rc_keymaps/terratec_slim_2 | 19 -- .../keytable/rc_keymaps/terratec_slim_2.toml | 23 ++ utils/keytable/rc_keymaps/tevii_nec | 48 ---- utils/keytable/rc_keymaps/tevii_nec.toml | 51 ++++ utils/keytable/rc_keymaps/tivo | 46 --- utils/keytable/rc_keymaps/tivo.toml | 50 ++++ utils/keytable/rc_keymaps/total_media_in_hand | 36 --- .../rc_keymaps/total_media_in_hand.toml | 40 +++ .../rc_keymaps/total_media_in_hand_02 | 36 --- .../rc_keymaps/total_media_in_hand_02.toml | 40 +++ utils/keytable/rc_keymaps/trekstor | 29 -- utils/keytable/rc_keymaps/trekstor.toml | 33 +++ utils/keytable/rc_keymaps/tt_1500 | 40 --- utils/keytable/rc_keymaps/tt_1500.toml | 44 +++ utils/keytable/rc_keymaps/tvwalkertwin | 18 -- utils/keytable/rc_keymaps/tvwalkertwin.toml | 21 ++ utils/keytable/rc_keymaps/twinhan_dtv_cab_ci | 54 ---- .../rc_keymaps/twinhan_dtv_cab_ci.toml | 57 ++++ utils/keytable/rc_keymaps/twinhan_vp1027_dvbs | 54 ---- .../rc_keymaps/twinhan_vp1027_dvbs.toml | 58 ++++ utils/keytable/rc_keymaps/videomate_k100 | 52 ---- utils/keytable/rc_keymaps/videomate_k100.toml | 55 ++++ utils/keytable/rc_keymaps/videomate_s350 | 45 --- utils/keytable/rc_keymaps/videomate_s350.toml | 48 ++++ utils/keytable/rc_keymaps/videomate_tv_pvr | 38 --- .../keytable/rc_keymaps/videomate_tv_pvr.toml | 41 +++ utils/keytable/rc_keymaps/vp702x | 3 - utils/keytable/rc_keymaps/vp702x.toml | 6 + utils/keytable/rc_keymaps/winfast | 57 ---- utils/keytable/rc_keymaps/winfast.toml | 60 ++++ .../keytable/rc_keymaps/winfast_usbii_deluxe | 29 -- .../rc_keymaps/winfast_usbii_deluxe.toml | 32 +++ utils/keytable/rc_keymaps/wobo_i5 | 9 - utils/keytable/rc_keymaps/zx_irdec | 41 --- utils/keytable/rc_keymaps/zx_irdec.toml | 45 +++ .../allwinner_ba10_tv_box | 15 - .../allwinner_ba10_tv_box.toml | 18 ++ .../allwinner_i12_a20_tv_box | 28 -- .../allwinner_i12_a20_tv_box.toml | 31 ++ utils/keytable/rc_keymaps_userspace/wobo_i5 | 9 - .../rc_keymaps_userspace/wobo_i5.toml | 12 + utils/keytable/rc_maps.cfg | 268 +++++++++--------- 270 files changed, 6121 insertions(+), 5717 deletions(-) delete mode 100644 utils/keytable/rc_keymaps/adstech_dvb_t_pci create mode 100644 utils/keytable/rc_keymaps/adstech_dvb_t_pci.toml delete mode 100644 utils/keytable/rc_keymaps/af9005 create mode 100644 utils/keytable/rc_keymaps/af9005.toml delete mode 100644 utils/keytable/rc_keymaps/alink_dtu_m create mode 100644 utils/keytable/rc_keymaps/alink_dtu_m.toml delete mode 100644 utils/keytable/rc_keymaps/allwinner_ba10_tv_box delete mode 100644 utils/keytable/rc_keymaps/allwinner_i12_a20_tv_box delete mode 100644 utils/keytable/rc_keymaps/anysee create mode 100644 utils/keytable/rc_keymaps/anysee.toml delete mode 100644 utils/keytable/rc_keymaps/apac_viewcomp create mode 100644 utils/keytable/rc_keymaps/apac_viewcomp.toml delete mode 100644 utils/keytable/rc_keymaps/astrometa_t2hybrid create mode 100644 utils/keytable/rc_keymaps/astrometa_t2hybrid.toml delete mode 100644 utils/keytable/rc_keymaps/asus_pc39 create mode 100644 utils/keytable/rc_keymaps/asus_pc39.toml delete mode 100644 utils/keytable/rc_keymaps/asus_ps3_100 create mode 100644 utils/keytable/rc_keymaps/asus_ps3_100.toml delete mode 100644 utils/keytable/rc_keymaps/ati_tv_wonder_hd_600 create mode 100644 utils/keytable/rc_keymaps/ati_tv_wonder_hd_600.toml delete mode 100644 utils/keytable/rc_keymaps/ati_x10 create mode 100644 utils/keytable/rc_keymaps/ati_x10.toml delete mode 100644 utils/keytable/rc_keymaps/avermedia create mode 100644 utils/keytable/rc_keymaps/avermedia.toml delete mode 100644 utils/keytable/rc_keymaps/avermedia_a16d create mode 100644 utils/keytable/rc_keymaps/avermedia_a16d.toml delete mode 100644 utils/keytable/rc_keymaps/avermedia_cardbus create mode 100644 utils/keytable/rc_keymaps/avermedia_cardbus.toml delete mode 100644 utils/keytable/rc_keymaps/avermedia_dvbt create mode 100644 utils/keytable/rc_keymaps/avermedia_dvbt.toml delete mode 100644 utils/keytable/rc_keymaps/avermedia_m135a create mode 100644 utils/keytable/rc_keymaps/avermedia_m135a.toml delete mode 100644 utils/keytable/rc_keymaps/avermedia_m733a_rm_k6 create mode 100644 utils/keytable/rc_keymaps/avermedia_m733a_rm_k6.toml delete mode 100644 utils/keytable/rc_keymaps/avermedia_rm_ks create mode 100644 utils/keytable/rc_keymaps/avermedia_rm_ks.toml delete mode 100644 utils/keytable/rc_keymaps/avertv_303 create mode 100644 utils/keytable/rc_keymaps/avertv_303.toml delete mode 100644 utils/keytable/rc_keymaps/az6027 create mode 100644 utils/keytable/rc_keymaps/az6027.toml delete mode 100644 utils/keytable/rc_keymaps/azurewave_ad_tu700 create mode 100644 utils/keytable/rc_keymaps/azurewave_ad_tu700.toml delete mode 100644 utils/keytable/rc_keymaps/behold create mode 100644 utils/keytable/rc_keymaps/behold.toml delete mode 100644 utils/keytable/rc_keymaps/behold_columbus create mode 100644 utils/keytable/rc_keymaps/behold_columbus.toml delete mode 100644 utils/keytable/rc_keymaps/budget_ci_old create mode 100644 utils/keytable/rc_keymaps/budget_ci_old.toml delete mode 100644 utils/keytable/rc_keymaps/cec create mode 100644 utils/keytable/rc_keymaps/cec.toml delete mode 100644 utils/keytable/rc_keymaps/cinergy create mode 100644 utils/keytable/rc_keymaps/cinergy.toml delete mode 100644 utils/keytable/rc_keymaps/cinergy_1400 create mode 100644 utils/keytable/rc_keymaps/cinergy_1400.toml delete mode 100644 utils/keytable/rc_keymaps/cinergyt2 create mode 100644 utils/keytable/rc_keymaps/cinergyt2.toml delete mode 100644 utils/keytable/rc_keymaps/d680_dmb create mode 100644 utils/keytable/rc_keymaps/d680_dmb.toml delete mode 100644 utils/keytable/rc_keymaps/delock_61959 create mode 100644 utils/keytable/rc_keymaps/delock_61959.toml delete mode 100644 utils/keytable/rc_keymaps/dib0700_nec create mode 100644 utils/keytable/rc_keymaps/dib0700_nec.toml delete mode 100644 utils/keytable/rc_keymaps/dib0700_rc5 create mode 100644 utils/keytable/rc_keymaps/dib0700_rc5.toml delete mode 100644 utils/keytable/rc_keymaps/dibusb create mode 100644 utils/keytable/rc_keymaps/dibusb.toml delete mode 100644 utils/keytable/rc_keymaps/digitalnow_tinytwin create mode 100644 utils/keytable/rc_keymaps/digitalnow_tinytwin.toml delete mode 100644 utils/keytable/rc_keymaps/digittrade create mode 100644 utils/keytable/rc_keymaps/digittrade.toml delete mode 100644 utils/keytable/rc_keymaps/digitv create mode 100644 utils/keytable/rc_keymaps/digitv.toml delete mode 100644 utils/keytable/rc_keymaps/dm1105_nec create mode 100644 utils/keytable/rc_keymaps/dm1105_nec.toml delete mode 100644 utils/keytable/rc_keymaps/dntv_live_dvb_t create mode 100644 utils/keytable/rc_keymaps/dntv_live_dvb_t.toml delete mode 100644 utils/keytable/rc_keymaps/dntv_live_dvbt_pro create mode 100644 utils/keytable/rc_keymaps/dntv_live_dvbt_pro.toml delete mode 100644 utils/keytable/rc_keymaps/dtt200u create mode 100644 utils/keytable/rc_keymaps/dtt200u.toml delete mode 100644 utils/keytable/rc_keymaps/dvbsky create mode 100644 utils/keytable/rc_keymaps/dvbsky.toml delete mode 100644 utils/keytable/rc_keymaps/dvico_mce create mode 100644 utils/keytable/rc_keymaps/dvico_mce.toml delete mode 100644 utils/keytable/rc_keymaps/dvico_portable create mode 100644 utils/keytable/rc_keymaps/dvico_portable.toml delete mode 100644 utils/keytable/rc_keymaps/em_terratec create mode 100644 utils/keytable/rc_keymaps/em_terratec.toml delete mode 100644 utils/keytable/rc_keymaps/encore_enltv create mode 100644 utils/keytable/rc_keymaps/encore_enltv.toml delete mode 100644 utils/keytable/rc_keymaps/encore_enltv2 create mode 100644 utils/keytable/rc_keymaps/encore_enltv2.toml delete mode 100644 utils/keytable/rc_keymaps/encore_enltv_fm53 create mode 100644 utils/keytable/rc_keymaps/encore_enltv_fm53.toml delete mode 100644 utils/keytable/rc_keymaps/evga_indtube create mode 100644 utils/keytable/rc_keymaps/evga_indtube.toml delete mode 100644 utils/keytable/rc_keymaps/eztv create mode 100644 utils/keytable/rc_keymaps/eztv.toml delete mode 100644 utils/keytable/rc_keymaps/flydvb create mode 100644 utils/keytable/rc_keymaps/flydvb.toml delete mode 100644 utils/keytable/rc_keymaps/flyvideo create mode 100644 utils/keytable/rc_keymaps/flyvideo.toml delete mode 100644 utils/keytable/rc_keymaps/fusionhdtv_mce create mode 100644 utils/keytable/rc_keymaps/fusionhdtv_mce.toml delete mode 100644 utils/keytable/rc_keymaps/gadmei_rm008z create mode 100644 utils/keytable/rc_keymaps/gadmei_rm008z.toml delete mode 100644 utils/keytable/rc_keymaps/geekbox create mode 100644 utils/keytable/rc_keymaps/geekbox.toml delete mode 100644 utils/keytable/rc_keymaps/genius_tvgo_a11mce create mode 100644 utils/keytable/rc_keymaps/genius_tvgo_a11mce.toml delete mode 100644 utils/keytable/rc_keymaps/gotview7135 create mode 100644 utils/keytable/rc_keymaps/gotview7135.toml delete mode 100644 utils/keytable/rc_keymaps/haupp create mode 100644 utils/keytable/rc_keymaps/haupp.toml delete mode 100644 utils/keytable/rc_keymaps/hauppauge create mode 100644 utils/keytable/rc_keymaps/hauppauge.toml delete mode 100644 utils/keytable/rc_keymaps/hisi_poplar create mode 100644 utils/keytable/rc_keymaps/hisi_poplar.toml delete mode 100644 utils/keytable/rc_keymaps/hisi_tv_demo create mode 100644 utils/keytable/rc_keymaps/hisi_tv_demo.toml delete mode 100644 utils/keytable/rc_keymaps/imon_mce create mode 100644 utils/keytable/rc_keymaps/imon_mce.toml delete mode 100644 utils/keytable/rc_keymaps/imon_pad create mode 100644 utils/keytable/rc_keymaps/imon_pad.toml delete mode 100644 utils/keytable/rc_keymaps/imon_rsc create mode 100644 utils/keytable/rc_keymaps/imon_rsc.toml delete mode 100644 utils/keytable/rc_keymaps/iodata_bctv7e create mode 100644 utils/keytable/rc_keymaps/iodata_bctv7e.toml delete mode 100644 utils/keytable/rc_keymaps/it913x_v1 create mode 100644 utils/keytable/rc_keymaps/it913x_v1.toml delete mode 100644 utils/keytable/rc_keymaps/it913x_v2 create mode 100644 utils/keytable/rc_keymaps/it913x_v2.toml delete mode 100644 utils/keytable/rc_keymaps/kaiomy create mode 100644 utils/keytable/rc_keymaps/kaiomy.toml delete mode 100644 utils/keytable/rc_keymaps/kworld_315u create mode 100644 utils/keytable/rc_keymaps/kworld_315u.toml delete mode 100644 utils/keytable/rc_keymaps/kworld_pc150u create mode 100644 utils/keytable/rc_keymaps/kworld_pc150u.toml delete mode 100644 utils/keytable/rc_keymaps/kworld_plus_tv_analog create mode 100644 utils/keytable/rc_keymaps/kworld_plus_tv_analog.toml delete mode 100644 utils/keytable/rc_keymaps/leadtek_y04g0051 create mode 100644 utils/keytable/rc_keymaps/leadtek_y04g0051.toml delete mode 100644 utils/keytable/rc_keymaps/lme2510 create mode 100644 utils/keytable/rc_keymaps/lme2510.toml delete mode 100644 utils/keytable/rc_keymaps/manli create mode 100644 utils/keytable/rc_keymaps/manli.toml delete mode 100644 utils/keytable/rc_keymaps/medion_x10 create mode 100644 utils/keytable/rc_keymaps/medion_x10.toml delete mode 100644 utils/keytable/rc_keymaps/medion_x10_digitainer create mode 100644 utils/keytable/rc_keymaps/medion_x10_digitainer.toml delete mode 100644 utils/keytable/rc_keymaps/medion_x10_or2x create mode 100644 utils/keytable/rc_keymaps/medion_x10_or2x.toml delete mode 100644 utils/keytable/rc_keymaps/megasky create mode 100644 utils/keytable/rc_keymaps/megasky.toml delete mode 100644 utils/keytable/rc_keymaps/msi_digivox_ii create mode 100644 utils/keytable/rc_keymaps/msi_digivox_ii.toml delete mode 100644 utils/keytable/rc_keymaps/msi_digivox_iii create mode 100644 utils/keytable/rc_keymaps/msi_digivox_iii.toml delete mode 100644 utils/keytable/rc_keymaps/msi_tvanywhere create mode 100644 utils/keytable/rc_keymaps/msi_tvanywhere.toml delete mode 100644 utils/keytable/rc_keymaps/msi_tvanywhere_plus create mode 100644 utils/keytable/rc_keymaps/msi_tvanywhere_plus.toml delete mode 100644 utils/keytable/rc_keymaps/nebula create mode 100644 utils/keytable/rc_keymaps/nebula.toml delete mode 100644 utils/keytable/rc_keymaps/nec_terratec_cinergy_xs create mode 100644 utils/keytable/rc_keymaps/nec_terratec_cinergy_xs.toml delete mode 100644 utils/keytable/rc_keymaps/norwood create mode 100644 utils/keytable/rc_keymaps/norwood.toml delete mode 100644 utils/keytable/rc_keymaps/npgtech create mode 100644 utils/keytable/rc_keymaps/npgtech.toml delete mode 100644 utils/keytable/rc_keymaps/opera1 create mode 100644 utils/keytable/rc_keymaps/opera1.toml delete mode 100644 utils/keytable/rc_keymaps/pctv_sedna create mode 100644 utils/keytable/rc_keymaps/pctv_sedna.toml delete mode 100644 utils/keytable/rc_keymaps/pinnacle310e create mode 100644 utils/keytable/rc_keymaps/pinnacle310e.toml delete mode 100644 utils/keytable/rc_keymaps/pinnacle_color create mode 100644 utils/keytable/rc_keymaps/pinnacle_color.toml delete mode 100644 utils/keytable/rc_keymaps/pinnacle_grey create mode 100644 utils/keytable/rc_keymaps/pinnacle_grey.toml delete mode 100644 utils/keytable/rc_keymaps/pinnacle_pctv_hd create mode 100644 utils/keytable/rc_keymaps/pinnacle_pctv_hd.toml delete mode 100644 utils/keytable/rc_keymaps/pixelview create mode 100644 utils/keytable/rc_keymaps/pixelview.toml delete mode 100644 utils/keytable/rc_keymaps/pixelview_002t create mode 100644 utils/keytable/rc_keymaps/pixelview_002t.toml delete mode 100644 utils/keytable/rc_keymaps/pixelview_mk12 create mode 100644 utils/keytable/rc_keymaps/pixelview_mk12.toml delete mode 100644 utils/keytable/rc_keymaps/pixelview_new create mode 100644 utils/keytable/rc_keymaps/pixelview_new.toml delete mode 100644 utils/keytable/rc_keymaps/powercolor_real_angel create mode 100644 utils/keytable/rc_keymaps/powercolor_real_angel.toml delete mode 100644 utils/keytable/rc_keymaps/proteus_2309 create mode 100644 utils/keytable/rc_keymaps/proteus_2309.toml delete mode 100644 utils/keytable/rc_keymaps/purpletv create mode 100644 utils/keytable/rc_keymaps/purpletv.toml delete mode 100644 utils/keytable/rc_keymaps/pv951 create mode 100644 utils/keytable/rc_keymaps/pv951.toml delete mode 100644 utils/keytable/rc_keymaps/rc6_mce create mode 100644 utils/keytable/rc_keymaps/rc6_mce.toml delete mode 100644 utils/keytable/rc_keymaps/real_audio_220_32_keys create mode 100644 utils/keytable/rc_keymaps/real_audio_220_32_keys.toml delete mode 100644 utils/keytable/rc_keymaps/reddo create mode 100644 utils/keytable/rc_keymaps/reddo.toml delete mode 100644 utils/keytable/rc_keymaps/snapstream_firefly create mode 100644 utils/keytable/rc_keymaps/snapstream_firefly.toml delete mode 100644 utils/keytable/rc_keymaps/streamzap create mode 100644 utils/keytable/rc_keymaps/streamzap.toml delete mode 100644 utils/keytable/rc_keymaps/su3000 create mode 100644 utils/keytable/rc_keymaps/su3000.toml delete mode 100644 utils/keytable/rc_keymaps/tango create mode 100644 utils/keytable/rc_keymaps/tango.toml delete mode 100644 utils/keytable/rc_keymaps/tbs_nec create mode 100644 utils/keytable/rc_keymaps/tbs_nec.toml delete mode 100644 utils/keytable/rc_keymaps/technisat_ts35 create mode 100644 utils/keytable/rc_keymaps/technisat_ts35.toml delete mode 100644 utils/keytable/rc_keymaps/technisat_usb2 create mode 100644 utils/keytable/rc_keymaps/technisat_usb2.toml delete mode 100644 utils/keytable/rc_keymaps/terratec_cinergy_c_pci create mode 100644 utils/keytable/rc_keymaps/terratec_cinergy_c_pci.toml delete mode 100644 utils/keytable/rc_keymaps/terratec_cinergy_s2_hd create mode 100644 utils/keytable/rc_keymaps/terratec_cinergy_s2_hd.toml delete mode 100644 utils/keytable/rc_keymaps/terratec_cinergy_xs create mode 100644 utils/keytable/rc_keymaps/terratec_cinergy_xs.toml delete mode 100644 utils/keytable/rc_keymaps/terratec_slim create mode 100644 utils/keytable/rc_keymaps/terratec_slim.toml delete mode 100644 utils/keytable/rc_keymaps/terratec_slim_2 create mode 100644 utils/keytable/rc_keymaps/terratec_slim_2.toml delete mode 100644 utils/keytable/rc_keymaps/tevii_nec create mode 100644 utils/keytable/rc_keymaps/tevii_nec.toml delete mode 100644 utils/keytable/rc_keymaps/tivo create mode 100644 utils/keytable/rc_keymaps/tivo.toml delete mode 100644 utils/keytable/rc_keymaps/total_media_in_hand create mode 100644 utils/keytable/rc_keymaps/total_media_in_hand.toml delete mode 100644 utils/keytable/rc_keymaps/total_media_in_hand_02 create mode 100644 utils/keytable/rc_keymaps/total_media_in_hand_02.toml delete mode 100644 utils/keytable/rc_keymaps/trekstor create mode 100644 utils/keytable/rc_keymaps/trekstor.toml delete mode 100644 utils/keytable/rc_keymaps/tt_1500 create mode 100644 utils/keytable/rc_keymaps/tt_1500.toml delete mode 100644 utils/keytable/rc_keymaps/tvwalkertwin create mode 100644 utils/keytable/rc_keymaps/tvwalkertwin.toml delete mode 100644 utils/keytable/rc_keymaps/twinhan_dtv_cab_ci create mode 100644 utils/keytable/rc_keymaps/twinhan_dtv_cab_ci.toml delete mode 100644 utils/keytable/rc_keymaps/twinhan_vp1027_dvbs create mode 100644 utils/keytable/rc_keymaps/twinhan_vp1027_dvbs.toml delete mode 100644 utils/keytable/rc_keymaps/videomate_k100 create mode 100644 utils/keytable/rc_keymaps/videomate_k100.toml delete mode 100644 utils/keytable/rc_keymaps/videomate_s350 create mode 100644 utils/keytable/rc_keymaps/videomate_s350.toml delete mode 100644 utils/keytable/rc_keymaps/videomate_tv_pvr create mode 100644 utils/keytable/rc_keymaps/videomate_tv_pvr.toml delete mode 100644 utils/keytable/rc_keymaps/vp702x create mode 100644 utils/keytable/rc_keymaps/vp702x.toml delete mode 100644 utils/keytable/rc_keymaps/winfast create mode 100644 utils/keytable/rc_keymaps/winfast.toml delete mode 100644 utils/keytable/rc_keymaps/winfast_usbii_deluxe create mode 100644 utils/keytable/rc_keymaps/winfast_usbii_deluxe.toml delete mode 100644 utils/keytable/rc_keymaps/wobo_i5 delete mode 100644 utils/keytable/rc_keymaps/zx_irdec create mode 100644 utils/keytable/rc_keymaps/zx_irdec.toml delete mode 100644 utils/keytable/rc_keymaps_userspace/allwinner_ba10_tv_box create mode 100644 utils/keytable/rc_keymaps_userspace/allwinner_ba10_tv_box.toml delete mode 100644 utils/keytable/rc_keymaps_userspace/allwinner_i12_a20_tv_box create mode 100644 utils/keytable/rc_keymaps_userspace/allwinner_i12_a20_tv_box.toml delete mode 100644 utils/keytable/rc_keymaps_userspace/wobo_i5 create mode 100644 utils/keytable/rc_keymaps_userspace/wobo_i5.toml
utils/keytable/gen_keytables.pl +21 -12
@@ -16,12 +16,13 @@ my @ir_files = ( my $debug = 1; my $dir="rc_keymaps"; -my $deftype = "UNKNOWN"; +my $deftype = "unknown"; my $keyname=""; my $out; my $read=0; my $type = $deftype; +my $variant = $deftype; my $check_type = 0; my $name; my $warn;
@@ -37,9 +38,15 @@ sub flush($$) my $defined; return if (!$keyname || !$out); - print "Creating $dir/$keyname\n"; - open OUT, ">$dir/$keyname"; - print OUT "# table $keyname, type: $type\n"; + print "Creating $dir/$keyname.toml\n"; + open OUT, ">$dir/$keyname.toml"; + print OUT "[[protocols]]\n"; + print OUT "name = \"$keyname\"\n"; + print OUT "protocol = \"$type\"\n"; + if ($type eq "nec" || $type eq "rc5" || $type eq "rc6" || $type eq "sony") { + print OUT "variant = \"$variant\"\n"; + } + print OUT "[protocols.scancodes]\n"; print OUT $out; close OUT;
@@ -50,11 +57,11 @@ sub flush($$) } if ($defined) { - printf OUT_MAP "*\t%-24s %s\n", $rc_map_names{$name} , $keyname; + printf OUT_MAP "*\t%-24s %s.toml\n", $rc_map_names{$name} , $keyname; } else { my $fname = $filename; $fname =~ s,.*/,,; - printf OUT_MAP "# *\t*\t\t\t %-20s # found in %s\n", $keyname, $fname; + printf OUT_MAP "# *\t*\t\t\t %-20s # found in %s\n", "$keyname.toml", $fname; } $keyname = "";
@@ -104,6 +111,7 @@ sub parse_file($$) next; } if (m/RC_PROTO_([\w\d_]+)/) { + $variant = lc $1; $type = $1; # Proper name the RC6 protocol
@@ -114,13 +122,14 @@ sub parse_file($$) # NECX protocol variant uses nec decoder $type =~ s/^NECX$/NEC/; + $type = lc $type; } next; } if ($read) { if (m/(0x[\dA-Fa-f]+)[\s\,]+(KEY|BTN)(\_[^\s\,\}]+)/) { - $out .= "$1 $2$3\n"; + $out .= "$1 = \"$2$3\"\n"; next; } if (m/\}/) {
@@ -198,11 +207,11 @@ print OUT_MAP << "EOF"; # /etc/rc_keymaps. # For example: # driver table file -# cx8800 * ./keycodes/rc5_hauppauge_new -# * rc-avermedia-m135a-rm-jx ./keycodes/kworld_315u -# saa7134 rc-avermedia-m135a-rm-jx ./keycodes/keycodes/nec_terratec_cinergy_xs -# em28xx * ./keycodes/kworld_315u -# * * ./keycodes/rc5_hauppauge_new +# cx8800 * ./keycodes/rc5_hauppauge_new.toml +# * rc-avermedia-m135a-rm-jx ./keycodes/kworld_315u.toml +# saa7134 rc-avermedia-m135a-rm-jx ./keycodes/keycodes/nec_terratec_cinergy_xs.toml +# em28xx * ./keycodes/kworld_315u.toml +# * * ./keycodes/rc5_hauppauge_new.toml # Table to automatically load the rc maps for the bundled IR's provided with the # devices supported by the linux kernel
utils/keytable/ir-keytable.1.in +2 -2
@@ -98,11 +98,11 @@ To list all connected Remote Controller devices: .PP To clean the keycode table and use a newer one: .br - \fBir\-keytable \-c \-w /etc/rc_keymaps/nec_terratec_cinergy_xs\fR + \fBir\-keytable \-c \-w /etc/rc_keymaps/nec_terratec_cinergy_xs.toml\fR .PP To append more codes to the existing table: .br - \fBir\-keytable \-w /etc/rc_keymaps/nec_terratec_cinergy_xs\fR + \fBir\-keytable \-w /etc/rc_keymaps/nec_terratec_cinergy_xs.toml\fR .PP To read the current keytable, on the second remote controller: \fBir\-keytable \-s rc1 \-r\fR
utils/keytable/rc_keymaps/adstech_dvb_t_pci deleted +0 -45
45 lines not on this page · raw message
utils/keytable/rc_keymaps/adstech_dvb_t_pci.toml new file +48 -0
48 lines not on this page · raw message
utils/keytable/rc_keymaps/af9005 deleted +0 -37
@@ -1,37 +0,0 @@ -# table af9005, type: UNKNOWN -0x01b7 KEY_POWER -0x01a7 KEY_VOLUMEUP -0x0187 KEY_CHANNELUP -0x017f KEY_MUTE -0x01bf KEY_VOLUMEDOWN -0x013f KEY_CHANNELDOWN -0x01df KEY_1 -0x015f KEY_2 -0x019f KEY_3 -0x011f KEY_4 -0x01ef KEY_5 -0x016f KEY_6 -0x01af KEY_7 -0x0127 KEY_8 -0x0107 KEY_9 -0x01cf KEY_ZOOM -0x014f KEY_0 -0x018f KEY_GOTO -0x00bd KEY_POWER -0x007d KEY_VOLUMEUP -0x00fd KEY_CHANNELUP -0x009d KEY_MUTE -0x005d KEY_VOLUMEDOWN -0x00dd KEY_CHANNELDOWN -0x00ad KEY_1 -0x006d KEY_2 -0x00ed KEY_3 -0x008d KEY_4 -0x004d KEY_5 -0x00cd KEY_6 -0x00b5 KEY_7 -0x0075 KEY_8 -0x00f5 KEY_9 -0x0095 KEY_ZOOM -0x0055 KEY_0 -0x00d5 KEY_GOTO
utils/keytable/rc_keymaps/af9005.toml new file +40 -0
@@ -0,0 +1,40 @@ +[[protocols]] +name = "af9005" +protocol = "unknown" +[protocols.scancodes] +0x01b7 = "KEY_POWER" +0x01a7 = "KEY_VOLUMEUP" +0x0187 = "KEY_CHANNELUP" +0x017f = "KEY_MUTE" +0x01bf = "KEY_VOLUMEDOWN" +0x013f = "KEY_CHANNELDOWN" +0x01df = "KEY_1" +0x015f = "KEY_2" +0x019f = "KEY_3" +0x011f = "KEY_4" +0x01ef = "KEY_5" +0x016f = "KEY_6" +0x01af = "KEY_7" +0x0127 = "KEY_8" +0x0107 = "KEY_9" +0x01cf = "KEY_ZOOM" +0x014f = "KEY_0" +0x018f = "KEY_GOTO" +0x00bd = "KEY_POWER" +0x007d = "KEY_VOLUMEUP" +0x00fd = "KEY_CHANNELUP" +0x009d = "KEY_MUTE" +0x005d = "KEY_VOLUMEDOWN" +0x00dd = "KEY_CHANNELDOWN" +0x00ad = "KEY_1" +0x006d = "KEY_2" +0x00ed = "KEY_3" +0x008d = "KEY_4" +0x004d = "KEY_5" +0x00cd = "KEY_6" +0x00b5 = "KEY_7" +0x0075 = "KEY_8" +0x00f5 = "KEY_9" +0x0095 = "KEY_ZOOM" +0x0055 = "KEY_0" +0x00d5 = "KEY_GOTO"
utils/keytable/rc_keymaps/alink_dtu_m deleted +0 -19
@@ -1,19 +0,0 @@ -# table alink_dtu_m, type: NEC -0x0800 KEY_VOLUMEUP -0x0801 KEY_1 -0x0802 KEY_3 -0x0803 KEY_7 -0x0804 KEY_9 -0x0805 KEY_NEW -0x0806 KEY_0 -0x0807 KEY_CHANNEL -0x080d KEY_5 -0x080f KEY_2 -0x0812 KEY_POWER2 -0x0814 KEY_CHANNELUP -0x0816 KEY_VOLUMEDOWN -0x0818 KEY_6 -0x081a KEY_MUTE -0x081b KEY_8 -0x081c KEY_4 -0x081d KEY_CHANNELDOWN
utils/keytable/rc_keymaps/alink_dtu_m.toml new file +23 -0
@@ -0,0 +1,23 @@ +[[protocols]] +name = "alink_dtu_m" +protocol = "nec" +variant = "nec" +[protocols.scancodes] +0x0800 = "KEY_VOLUMEUP" +0x0801 = "KEY_1" +0x0802 = "KEY_3" +0x0803 = "KEY_7" +0x0804 = "KEY_9" +0x0805 = "KEY_NEW" +0x0806 = "KEY_0" +0x0807 = "KEY_CHANNEL" +0x080d = "KEY_5" +0x080f = "KEY_2" +0x0812 = "KEY_POWER2" +0x0814 = "KEY_CHANNELUP" +0x0816 = "KEY_VOLUMEDOWN" +0x0818 = "KEY_6" +0x081a = "KEY_MUTE" +0x081b = "KEY_8" +0x081c = "KEY_4" +0x081d = "KEY_CHANNELDOWN"
utils/keytable/rc_keymaps/allwinner_ba10_tv_box deleted +0 -15
@@ -1,15 +0,0 @@ -# table allwinner_ba10_tv_box, type: NEC -0x206 KEY_UP -0x216 KEY_VOLUMEDOWN -0x217 KEY_NEXTSONG -0x21a KEY_POWER -0x21b KEY_BACK -0x21e KEY_OK -0x21f KEY_DOWN -0x244 KEY_VOLUMEUP -0x254 KEY_PREVIOUSSONG -0x255 KEY_PLAYPAUSE -0x258 KEY_MENU -0x259 KEY_HOMEPAGE -0x25c KEY_RIGHT -0x25d KEY_LEFT
utils/keytable/rc_keymaps/allwinner_i12_a20_tv_box deleted +0 -28
@@ -1,28 +0,0 @@ -# table allwinner_i12_a20_tv_box, type: NEC -0x00 KEY_7 -0x01 KEY_4 -0x02 KEY_1 -0x03 KEY_VOLUMEDOWN -0x04 KEY_8 -0x05 KEY_5 -0x06 KEY_2 -0x07 KEY_BACK -0x08 KEY_9 -0x09 KEY_6 -0x0a KEY_3 -0x0b KEY_NEXTSONG -0x0c KEY_WWW -0x0d KEY_0 -0x0e KEY_BACKSPACE -0x40 KEY_VOLUMEUP -0x41 KEY_LEFT -0x42 KEY_HOMEPAGE -0x43 KEY_POWER -0x44 KEY_DOWN -0x45 KEY_OK -0x46 KEY_UP -0x47 KEY_CONTEXT_MENU -0x48 KEY_PREVIOUSSONG -0x49 KEY_RIGHT -0x4a KEY_MENU -0x4b KEY_MUTE
utils/keytable/rc_keymaps/anysee deleted +0 -45
45 lines not on this page · raw message
utils/keytable/rc_keymaps/anysee.toml new file +49 -0
49 lines not on this page · raw message
utils/keytable/rc_keymaps/apac_viewcomp deleted +0 -32
@@ -1,32 +0,0 @@ -# table apac_viewcomp, type: UNKNOWN -0x01 KEY_1 -0x02 KEY_2 -0x03 KEY_3 -0x04 KEY_4 -0x05 KEY_5 -0x06 KEY_6 -0x07 KEY_7 -0x08 KEY_8 -0x09 KEY_9 -0x00 KEY_0 -0x17 KEY_LAST -0x0a KEY_LIST -0x1c KEY_TUNER -0x15 KEY_SEARCH -0x12 KEY_POWER -0x1f KEY_VOLUMEDOWN -0x1b KEY_VOLUMEUP -0x1e KEY_CHANNELDOWN -0x1a KEY_CHANNELUP -0x11 KEY_VIDEO -0x0f KEY_ZOOM -0x13 KEY_MUTE -0x10 KEY_TEXT -0x0d KEY_STOP -0x0e KEY_RECORD -0x1d KEY_PLAYPAUSE -0x19 KEY_PLAY -0x16 KEY_GOTO -0x14 KEY_REFRESH -0x0c KEY_KPPLUS -0x18 KEY_KPMINUS
utils/keytable/rc_keymaps/apac_viewcomp.toml new file +35 -0
@@ -0,0 +1,35 @@ +[[protocols]] +name = "apac_viewcomp" +protocol = "unknown" +[protocols.scancodes] +0x01 = "KEY_1" +0x02 = "KEY_2" +0x03 = "KEY_3" +0x04 = "KEY_4" +0x05 = "KEY_5" +0x06 = "KEY_6" +0x07 = "KEY_7" +0x08 = "KEY_8" +0x09 = "KEY_9" +0x00 = "KEY_0" +0x17 = "KEY_LAST" +0x0a = "KEY_LIST" +0x1c = "KEY_TUNER" +0x15 = "KEY_SEARCH" +0x12 = "KEY_POWER" +0x1f = "KEY_VOLUMEDOWN" +0x1b = "KEY_VOLUMEUP" +0x1e = "KEY_CHANNELDOWN" +0x1a = "KEY_CHANNELUP" +0x11 = "KEY_VIDEO" +0x0f = "KEY_ZOOM" +0x13 = "KEY_MUTE" +0x10 = "KEY_TEXT" +0x0d = "KEY_STOP" +0x0e = "KEY_RECORD" +0x1d = "KEY_PLAYPAUSE" +0x19 = "KEY_PLAY" +0x16 = "KEY_GOTO" +0x14 = "KEY_REFRESH" +0x0c = "KEY_KPPLUS" +0x18 = "KEY_KPMINUS"
utils/keytable/rc_keymaps/astrometa_t2hybrid deleted +0 -22
@@ -1,22 +0,0 @@ -# table astrometa_t2hybrid, type: NEC -0x4d KEY_POWER2 -0x54 KEY_VIDEO -0x16 KEY_MUTE -0x4c KEY_RECORD -0x05 KEY_CHANNELUP -0x0c KEY_TIME -0x0a KEY_VOLUMEDOWN -0x40 KEY_ZOOM -0x1e KEY_VOLUMEUP -0x12 KEY_0 -0x02 KEY_CHANNELDOWN -0x1c KEY_AGAIN -0x09 KEY_1 -0x1d KEY_2 -0x1f KEY_3 -0x0d KEY_4 -0x19 KEY_5 -0x1b KEY_6 -0x11 KEY_7 -0x15 KEY_8 -0x17 KEY_9
utils/keytable/rc_keymaps/astrometa_t2hybrid.toml new file +26 -0
@@ -0,0 +1,26 @@ +[[protocols]] +name = "astrometa_t2hybrid" +protocol = "nec" +variant = "nec" +[protocols.scancodes] +0x4d = "KEY_POWER2" +0x54 = "KEY_VIDEO" +0x16 = "KEY_MUTE" +0x4c = "KEY_RECORD" +0x05 = "KEY_CHANNELUP" +0x0c = "KEY_TIME" +0x0a = "KEY_VOLUMEDOWN" +0x40 = "KEY_ZOOM" +0x1e = "KEY_VOLUMEUP" +0x12 = "KEY_0" +0x02 = "KEY_CHANNELDOWN" +0x1c = "KEY_AGAIN" +0x09 = "KEY_1" +0x1d = "KEY_2" +0x1f = "KEY_3" +0x0d = "KEY_4" +0x19 = "KEY_5" +0x1b = "KEY_6" +0x11 = "KEY_7" +0x15 = "KEY_8" +0x17 = "KEY_9"
utils/keytable/rc_keymaps/asus_pc39 deleted +0 -40
@@ -1,40 +0,0 @@ -# table asus_pc39, type: RC5 -0x082a KEY_0 -0x0816 KEY_1 -0x0812 KEY_2 -0x0814 KEY_3 -0x0836 KEY_4 -0x0832 KEY_5 -0x0834 KEY_6 -0x080e KEY_7 -0x080a KEY_8 -0x080c KEY_9 -0x0801 KEY_RADIO -0x083c KEY_MENU -0x0815 KEY_VOLUMEUP -0x0826 KEY_VOLUMEDOWN -0x0808 KEY_UP -0x0804 KEY_DOWN -0x0818 KEY_LEFT -0x0810 KEY_RIGHT -0x081a KEY_VIDEO -0x0806 KEY_AUDIO -0x081e KEY_TV -0x0822 KEY_EXIT -0x0835 KEY_CHANNELUP -0x0824 KEY_CHANNELDOWN -0x0825 KEY_ENTER -0x0839 KEY_PAUSE -0x0821 KEY_PREVIOUS -0x0819 KEY_NEXT -0x0831 KEY_REWIND -0x0805 KEY_FASTFORWARD -0x0809 KEY_STOP -0x0811 KEY_RECORD -0x0829 KEY_POWER -0x082e KEY_ZOOM -0x082c KEY_MACRO -0x081c KEY_HOME -0x083a KEY_PVR -0x0802 KEY_MUTE -0x083e KEY_DVD
utils/keytable/rc_keymaps/asus_pc39.toml new file +44 -0
44 lines not on this page · raw message
utils/keytable/rc_keymaps/asus_ps3_100 deleted +0 -42
42 lines not on this page · raw message
utils/keytable/rc_keymaps/asus_ps3_100.toml new file +46 -0
46 lines not on this page · raw message
utils/keytable/rc_keymaps/ati_tv_wonder_hd_600 deleted +0 -25
@@ -1,25 +0,0 @@ -# table ati_tv_wonder_hd_600, type: UNKNOWN -0x00 KEY_RECORD -0x01 KEY_PLAYPAUSE -0x02 KEY_STOP -0x03 KEY_POWER -0x04 KEY_PREVIOUS -0x05 KEY_REWIND -0x06 KEY_FORWARD -0x07 KEY_NEXT -0x08 KEY_EPG -0x09 KEY_HOME -0x0a KEY_MENU -0x0b KEY_CHANNELUP -0x0c KEY_BACK -0x0d KEY_UP -0x0e KEY_INFO -0x0f KEY_CHANNELDOWN -0x10 KEY_LEFT -0x11 KEY_SELECT -0x12 KEY_RIGHT -0x13 KEY_VOLUMEUP -0x14 KEY_LAST -0x15 KEY_DOWN -0x16 KEY_MUTE -0x17 KEY_VOLUMEDOWN
utils/keytable/rc_keymaps/ati_tv_wonder_hd_600.toml new file +28 -0
@@ -0,0 +1,28 @@ +[[protocols]] +name = "ati_tv_wonder_hd_600" +protocol = "unknown" +[protocols.scancodes] +0x00 = "KEY_RECORD" +0x01 = "KEY_PLAYPAUSE" +0x02 = "KEY_STOP" +0x03 = "KEY_POWER" +0x04 = "KEY_PREVIOUS" +0x05 = "KEY_REWIND" +0x06 = "KEY_FORWARD" +0x07 = "KEY_NEXT" +0x08 = "KEY_EPG" +0x09 = "KEY_HOME" +0x0a = "KEY_MENU" +0x0b = "KEY_CHANNELUP" +0x0c = "KEY_BACK" +0x0d = "KEY_UP" +0x0e = "KEY_INFO" +0x0f = "KEY_CHANNELDOWN" +0x10 = "KEY_LEFT" +0x11 = "KEY_SELECT" +0x12 = "KEY_RIGHT" +0x13 = "KEY_VOLUMEUP" +0x14 = "KEY_LAST" +0x15 = "KEY_DOWN" +0x16 = "KEY_MUTE" +0x17 = "KEY_VOLUMEDOWN"
utils/keytable/rc_keymaps/ati_x10 deleted +0 -49
49 lines not on this page · raw message
utils/keytable/rc_keymaps/ati_x10.toml new file +52 -0
52 lines not on this page · raw message
utils/keytable/rc_keymaps/avermedia deleted +0 -37
@@ -1,37 +0,0 @@ -# table avermedia, type: UNKNOWN -0x28 KEY_1 -0x18 KEY_2 -0x38 KEY_3 -0x24 KEY_4 -0x14 KEY_5 -0x34 KEY_6 -0x2c KEY_7 -0x1c KEY_8 -0x3c KEY_9 -0x22 KEY_0 -0x20 KEY_TV -0x10 KEY_CD -0x30 KEY_TEXT -0x00 KEY_POWER -0x08 KEY_VIDEO -0x04 KEY_AUDIO -0x0c KEY_ZOOM -0x12 KEY_SUBTITLE -0x32 KEY_REWIND -0x02 KEY_PRINT -0x2a KEY_SEARCH -0x1a KEY_SLEEP -0x3a KEY_CAMERA -0x0a KEY_MUTE -0x26 KEY_RECORD -0x16 KEY_PAUSE -0x36 KEY_STOP -0x06 KEY_PLAY -0x2e KEY_RED -0x21 KEY_GREEN -0x0e KEY_YELLOW -0x01 KEY_BLUE -0x1e KEY_VOLUMEDOWN -0x3e KEY_VOLUMEUP -0x11 KEY_CHANNELDOWN -0x31 KEY_CHANNELUP
utils/keytable/rc_keymaps/avermedia.toml new file +40 -0
@@ -0,0 +1,40 @@ +[[protocols]] +name = "avermedia" +protocol = "unknown" +[protocols.scancodes] +0x28 = "KEY_1" +0x18 = "KEY_2" +0x38 = "KEY_3" +0x24 = "KEY_4" +0x14 = "KEY_5" +0x34 = "KEY_6" +0x2c = "KEY_7" +0x1c = "KEY_8" +0x3c = "KEY_9" +0x22 = "KEY_0" +0x20 = "KEY_TV" +0x10 = "KEY_CD" +0x30 = "KEY_TEXT" +0x00 = "KEY_POWER" +0x08 = "KEY_VIDEO" +0x04 = "KEY_AUDIO" +0x0c = "KEY_ZOOM" +0x12 = "KEY_SUBTITLE" +0x32 = "KEY_REWIND" +0x02 = "KEY_PRINT" +0x2a = "KEY_SEARCH" +0x1a = "KEY_SLEEP" +0x3a = "KEY_CAMERA" +0x0a = "KEY_MUTE" +0x26 = "KEY_RECORD" +0x16 = "KEY_PAUSE" +0x36 = "KEY_STOP" +0x06 = "KEY_PLAY" +0x2e = "KEY_RED" +0x21 = "KEY_GREEN" +0x0e = "KEY_YELLOW" +0x01 = "KEY_BLUE" +0x1e = "KEY_VOLUMEDOWN" +0x3e = "KEY_VOLUMEUP" +0x11 = "KEY_CHANNELDOWN" +0x31 = "KEY_CHANNELUP"
utils/keytable/rc_keymaps/avermedia_a16d deleted +0 -35
@@ -1,35 +0,0 @@ -# table avermedia_a16d, type: UNKNOWN -0x20 KEY_LIST -0x00 KEY_POWER -0x28 KEY_1 -0x18 KEY_2 -0x38 KEY_3 -0x24 KEY_4 -0x14 KEY_5 -0x34 KEY_6 -0x2c KEY_7 -0x1c KEY_8 -0x3c KEY_9 -0x12 KEY_SUBTITLE -0x22 KEY_0 -0x32 KEY_REWIND -0x3a KEY_SHUFFLE -0x02 KEY_PRINT -0x11 KEY_CHANNELDOWN -0x31 KEY_CHANNELUP -0x0c KEY_ZOOM -0x1e KEY_VOLUMEDOWN -0x3e KEY_VOLUMEUP -0x0a KEY_MUTE -0x04 KEY_AUDIO -0x26 KEY_RECORD -0x06 KEY_PLAY -0x36 KEY_STOP -0x16 KEY_PAUSE -0x2e KEY_REWIND -0x0e KEY_FASTFORWARD -0x30 KEY_TEXT -0x21 KEY_GREEN -0x01 KEY_BLUE -0x08 KEY_EPG -0x2a KEY_MENU
utils/keytable/rc_keymaps/avermedia_a16d.toml new file +38 -0
@@ -0,0 +1,38 @@ +[[protocols]] +name = "avermedia_a16d" +protocol = "unknown" +[protocols.scancodes] +0x20 = "KEY_LIST" +0x00 = "KEY_POWER" +0x28 = "KEY_1" +0x18 = "KEY_2" +0x38 = "KEY_3" +0x24 = "KEY_4" +0x14 = "KEY_5" +0x34 = "KEY_6" +0x2c = "KEY_7" +0x1c = "KEY_8" +0x3c = "KEY_9" +0x12 = "KEY_SUBTITLE" +0x22 = "KEY_0" +0x32 = "KEY_REWIND" +0x3a = "KEY_SHUFFLE" +0x02 = "KEY_PRINT" +0x11 = "KEY_CHANNELDOWN" +0x31 = "KEY_CHANNELUP" +0x0c = "KEY_ZOOM" +0x1e = "KEY_VOLUMEDOWN" +0x3e = "KEY_VOLUMEUP" +0x0a = "KEY_MUTE" +0x04 = "KEY_AUDIO" +0x26 = "KEY_RECORD" +0x06 = "KEY_PLAY" +0x36 = "KEY_STOP" +0x16 = "KEY_PAUSE" +0x2e = "KEY_REWIND" +0x0e = "KEY_FASTFORWARD" +0x30 = "KEY_TEXT" +0x21 = "KEY_GREEN" +0x01 = "KEY_BLUE" +0x08 = "KEY_EPG" +0x2a = "KEY_MENU"
utils/keytable/rc_keymaps/zx_irdec deleted +0 -41
41 lines not on this page · raw message
utils/keytable/rc_keymaps/zx_irdec.toml new file +45 -0
45 lines not on this page · raw message
utils/keytable/rc_keymaps_userspace/allwinner_ba10_tv_box deleted +0 -15
@@ -1,15 +0,0 @@ -# table allwinner_ba10_tv_box, type: NEC -0x206 KEY_UP -0x216 KEY_VOLUMEDOWN -0x217 KEY_NEXTSONG -0x21a KEY_POWER -0x21b KEY_BACK -0x21e KEY_OK -0x21f KEY_DOWN -0x244 KEY_VOLUMEUP -0x254 KEY_PREVIOUSSONG -0x255 KEY_PLAYPAUSE -0x258 KEY_MENU -0x259 KEY_HOMEPAGE -0x25c KEY_RIGHT -0x25d KEY_LEFT
utils/keytable/rc_keymaps_userspace/allwinner_ba10_tv_box.toml new file +18 -0
@@ -0,0 +1,18 @@ +[[protocols]] +name = "allwinner_ba10_tv_box" +protocol = "nec" +[protocols.scancodes] +0x206 = "KEY_UP" +0x216 = "KEY_VOLUMEDOWN" +0x217 = "KEY_NEXTSONG" +0x21a = "KEY_POWER" +0x21b = "KEY_BACK" +0x21e = "KEY_OK" +0x21f = "KEY_DOWN" +0x244 = "KEY_VOLUMEUP" +0x254 = "KEY_PREVIOUSSONG" +0x255 = "KEY_PLAYPAUSE" +0x258 = "KEY_MENU" +0x259 = "KEY_HOMEPAGE" +0x25c = "KEY_RIGHT" +0x25d = "KEY_LEFT"
utils/keytable/rc_keymaps_userspace/allwinner_i12_a20_tv_box deleted +0 -28
@@ -1,28 +0,0 @@ -# table allwinner_i12_a20_tv_box, type: NEC -0x00 KEY_7 -0x01 KEY_4 -0x02 KEY_1 -0x03 KEY_VOLUMEDOWN -0x04 KEY_8 -0x05 KEY_5 -0x06 KEY_2 -0x07 KEY_BACK -0x08 KEY_9 -0x09 KEY_6 -0x0a KEY_3 -0x0b KEY_NEXTSONG -0x0c KEY_WWW -0x0d KEY_0 -0x0e KEY_BACKSPACE -0x40 KEY_VOLUMEUP -0x41 KEY_LEFT -0x42 KEY_HOMEPAGE -0x43 KEY_POWER -0x44 KEY_DOWN -0x45 KEY_OK -0x46 KEY_UP -0x47 KEY_CONTEXT_MENU -0x48 KEY_PREVIOUSSONG -0x49 KEY_RIGHT -0x4a KEY_MENU -0x4b KEY_MUTE
utils/keytable/rc_keymaps_userspace/allwinner_i12_a20_tv_box.toml new file +31 -0
@@ -0,0 +1,31 @@ +[[protocols]] +name = "allwinner_i12_a20_tv_box" +protocol = "nec" +[protocols.scancodes] +0x00 = "KEY_7" +0x01 = "KEY_4" +0x02 = "KEY_1" +0x03 = "KEY_VOLUMEDOWN" +0x04 = "KEY_8" +0x05 = "KEY_5" +0x06 = "KEY_2" +0x07 = "KEY_BACK" +0x08 = "KEY_9" +0x09 = "KEY_6" +0x0a = "KEY_3" +0x0b = "KEY_NEXTSONG" +0x0c = "KEY_WWW" +0x0d = "KEY_0" +0x0e = "KEY_BACKSPACE" +0x40 = "KEY_VOLUMEUP" +0x41 = "KEY_LEFT" +0x42 = "KEY_HOMEPAGE" +0x43 = "KEY_POWER" +0x44 = "KEY_DOWN" +0x45 = "KEY_OK" +0x46 = "KEY_UP" +0x47 = "KEY_CONTEXT_MENU" +0x48 = "KEY_PREVIOUSSONG" +0x49 = "KEY_RIGHT" +0x4a = "KEY_MENU" +0x4b = "KEY_MUTE"
utils/keytable/rc_keymaps_userspace/wobo_i5 deleted +0 -9
@@ -1,9 +0,0 @@ -# table wobo_i5, type: NEC -0x01 KEY_POWER -0x05 KEY_UP -0x06 KEY_LEFT -0x08 KEY_RIGHT -0x09 KEY_PLAYPAUSE -0x0a KEY_DOWN -0x0c KEY_MENU -0x0e KEY_BACK
utils/keytable/rc_keymaps_userspace/wobo_i5.toml new file +12 -0
@@ -0,0 +1,12 @@ +[[protocols]] +name = "wobo_i5" +protocol = "nec" +[protocols.scancodes] +0x01 = "KEY_POWER" +0x05 = "KEY_UP" +0x06 = "KEY_LEFT" +0x08 = "KEY_RIGHT" +0x09 = "KEY_PLAYPAUSE" +0x0a = "KEY_DOWN" +0x0c = "KEY_MENU" +0x0e = "KEY_BACK"
utils/keytable/rc_maps.cfg +134 -134
276 lines not on this page · raw message
Signature · 1 line
2.17.1
PATCH v3 5/5 ir-keytable: add tool to aid migration from lircd
In reply to Sean YoungThis python script is written to help users translate their lircd.conf remote definition to ir-keytable toml format. The tool does not cover every possible lircd.conf, but the majority should work.
./lircd2toml.py PD-202.lircd.conf -o PD-202.toml
--- contrib/Makefile.am | 3 +- contrib/lircd2toml.py | 527 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 529 insertions(+), 1 deletion(-) create mode 100755 contrib/lircd2toml.py
contrib/Makefile.am +2 -1
@@ -25,4 +25,5 @@ EXTRA_DIST = \ cobalt-ctl \ parsers \ pci_traffic \ - v4l_rec.pl + v4l_rec.pl \ + lircd2toml.py
contrib/lircd2toml.py new file +527 -0
527 lines not on this page · raw message
Signature · 1 line
2.17.1
Hi Sean,
thanks a lot, this is a really nice new feature!
Quoted 27 lines · Sean Young
Once kernel v4.18 is released with IR BPF decoding, this can be merged to v4l-utils.
The idea is that IR decoders can be written in C, compiled to BPF relocatable object file. Any global variables can overriden, so we can supports lots of variants of similiar protocols (just like in the lircd.conf file).
The existing
rc_keymapfile format can't be used for variables, so I've converted the format to toml. An alternative would be to use the existing lircd.conf file format, but it's a very awkward file to parse in C and it contains many features which are irrelevant to us.We use libelf to load the bpf relocatable object file.
After loading our example grundig keymap with bpf decoder, the output of ir-keytable is:
Found
/sys/class/rc/rc0/(/dev/input/event8) with:
Name: Winbond CIR
Driver: winbond-cir, table: rc-rc6-mce
LIRC device:/dev/lirc0
Attached BPF protocols: grundig
Supported kernel protocols: lirc rc-5 rc-5-sz jvc sony nec sanyomce_kbdrc-6 sharp xmp imon Enabled protocols: lirc
bus: 25, vendor/product: 10ad:00f1, version:0x0004
Repeat delay = 500 ms, repeat period = 125 ms
Quoted 8 lines
Alternatively, you simply specify the path to the object file on the command line:
$ ir-keytable -e header_pulse=9000,header_space=4500 -p ./pulse_distance.oDerek, please note that you can now convert the dish lircd.conf to toml and load the keymap; it should just work. It would be great to have your feedback, thank you.
I did a few tests with one of my RC-5 remotes, this lircd.conf file
https://github.com/PiSupply/JustBoom/blob/master/LIRC/lircd.conf
and kernel 4.18-rc5 on RPi2, with the 32bit ARM kernel and gpio-ir-recv, and on LePotato / aarch64 with meson-ir.
lircd2toml.py did a really good job on converting it, the only thing missing was the toggle_bit.
When testing the converted toml (with "toggle_bit = 11" added and the obvious volume keycode fixes) I noticed a couple of issues:
Buttons seem to be "stuck". The scancode is decoded, key_down event is generated, but after release the key_down events repeat indefinitely - with the built-in rc-5 decoder this works fine.
root@upstream:/home/hias/ir-test# ir-keytable -c -w justboom.toml -t Old keytable cleared Wrote 12 keycode(s) to driver Protocols changed to Loaded BPF protocol manchester Testing events. Please, press CTRL-C to abort. 29.065820: lirc protocol(66): scancode = 0x141b 29.065890: event type EV_MSC(0x04): scancode = 0x141b 29.065890: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 29.065890: event type EV_SYN(0x00). 29.570059: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 29.570059: event type EV_SYN(0x00). 29.710062: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 29.710062: event type EV_SYN(0x00). 29.850057: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 29.850057: event type EV_SYN(0x00). 29.990057: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 29.990057: event type EV_SYN(0x00). 30.130055: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 30.130055: event type EV_SYN(0x00). ...
Even scancodes, eg KEY_UP / scancode 0x141a, aren't decoded at all, only odd scancodes work. My guess is the manchester decoder could have a problem when the last bit is zero and the message doesn't end with a pulse, but a (rather long) timeout.
(Re-)loading a bpf decoder only works 8 times. The 9th attempt gives an error message.
# for i in `seq 1 9` ; do ir-keytable -p manchester ; done Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to failed to create a map: 1 Operation not permitted Loaded BPF protocol manchester
so long,
Hias
Hi Hias,
Quoted 3 lines · Matthias Reichl
Hi Sean,
thanks a lot, this is a really nice new feature!
Thank you for testing it and finding all those issues, it has become much better from your testing.
Quoted 37 lines · Sean Young
Quoted 27 lines
Once kernel v4.18 is released with IR BPF decoding, this can be merged to v4l-utils.
The idea is that IR decoders can be written in C, compiled to BPF relocatable object file. Any global variables can overriden, so we can supports lots of variants of similiar protocols (just like in the lircd.conf file).
The existing
rc_keymapfile format can't be used for variables, so I've converted the format to toml. An alternative would be to use the existing lircd.conf file format, but it's a very awkward file to parse in C and it contains many features which are irrelevant to us.We use libelf to load the bpf relocatable object file.
After loading our example grundig keymap with bpf decoder, the output of ir-keytable is:
Found
/sys/class/rc/rc0/(/dev/input/event8) with:
Name: Winbond CIR
Driver: winbond-cir, table: rc-rc6-mce
LIRC device:/dev/lirc0
Attached BPF protocols: grundig
Supported kernel protocols: lirc rc-5 rc-5-sz jvc sony nec sanyomce_kbdrc-6 sharp xmp imon Enabled protocols: lirc
bus: 25, vendor/product: 10ad:00f1, version:0x0004
Repeat delay = 500 ms, repeat period = 125 msQuoted 8 lines
Alternatively, you simply specify the path to the object file on the command line:
$ ir-keytable -e header_pulse=9000,header_space=4500 -p ./pulse_distance.oDerek, please note that you can now convert the dish lircd.conf to toml and load the keymap; it should just work. It would be great to have your feedback, thank you.
Quoted 7 lines
I did a few tests with one of my RC-5 remotes, this lircd.conf file
https://github.com/PiSupply/JustBoom/blob/master/LIRC/lircd.conf
and kernel 4.18-rc5 on RPi2, with the 32bit ARM kernel and gpio-ir-recv, and on LePotato / aarch64 with meson-ir.
lircd2toml.pydid a really good job on converting it, the only thing missing was thetoggle_bit.
Right, there was a bug in lirc2html.py. I've added a fix to my bpf branch:
https://git.linuxtv.org/syoung/v4l-utils.git/log/?h=bpf
Quoted 20 lines
When testing the converted toml (with "
toggle_bit= 11" added and the obvious volume keycode fixes) I noticed a couple of issues:Buttons seem to be "stuck". The scancode is decoded,
key_downevent is generated, but after release thekey_downevents repeat indefinitely - with the built-in rc-5 decoder this works fine.root@upstream:/home/hias/ir-test# ir-keytable -c -w justboom.toml -t Old keytable cleared Wrote 12 keycode(s) to driver Protocols changed to Loaded BPF protocol manchester Testing events. Please, press CTRL-C to abort. 29.065820: lirc protocol(66): scancode = 0x141b 29.065890: event type EV_MSC(0x04): scancode = 0x141b 29.065890: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 29.065890: event type EV_SYN(0x00). 29.570059: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 29.570059: event type EV_SYN(0x00). 29.710062: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c)
Quoted 8 lines
29.710062: event type EV_SYN(0x00). 29.850057: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 29.850057: event type EV_SYN(0x00). 29.990057: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 29.990057: event type EV_SYN(0x00). 30.130055: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 30.130055: event type EV_SYN(0x00). ...
Thanks, I had not seen this yet either. There is a fix here:
https://www.mail-archive.com/[email protected]/msg133813.html
Quoted 4 lines
Even scancodes, eg
KEY_UP/ scancode0x141a, aren't decoded at all, only odd scancodes work. My guess is the manchester decoder could have a problem when the last bit is zero and the message doesn't end with a pulse, but a (rather long) timeout.
Yep, yet another bug! I'v added a fix here:
https://git.linuxtv.org/syoung/v4l-utils.git/log/?h=bpf
Quoted 15 lines
(Re-)loading a bpf decoder only works 8 times. The 9th attempt gives an error message.
# for i in `seq 1 9` ; do ir-keytable -p manchester ; done Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to
Quoted 8 lines
Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to failed to create a map: 1 Operation not permitted Loaded BPF protocol manchester
There was a bug where bpf programs were leaked on detach. Unfortunately the fix had not made it to the branch when you were testing.
https://www.mail-archive.com/[email protected]/msg133273.html
Sean
Hi Sean,
Quoted 52 lines · Sean Young
Hi Hias,
Quoted 3 lines · Matthias Reichl
Hi Sean,
thanks a lot, this is a really nice new feature!
Thank you for testing it and finding all those issues, it has become much better from your testing.
Quoted 42 lines · Sean Young
Quoted 27 lines
Once kernel v4.18 is released with IR BPF decoding, this can be merged to v4l-utils.
The idea is that IR decoders can be written in C, compiled to BPF relocatable object file. Any global variables can overriden, so we can supports lots of variants of similiar protocols (just like in the lircd.conf file).
The existing
rc_keymapfile format can't be used for variables, so I've converted the format to toml. An alternative would be to use the existing lircd.conf file format, but it's a very awkward file to parse in C and it contains many features which are irrelevant to us.We use libelf to load the bpf relocatable object file.
After loading our example grundig keymap with bpf decoder, the output of ir-keytable is:
Found
/sys/class/rc/rc0/(/dev/input/event8) with:
Name: Winbond CIR
Driver: winbond-cir, table: rc-rc6-mce
LIRC device:/dev/lirc0
Attached BPF protocols: grundig
Supported kernel protocols: lirc rc-5 rc-5-sz jvc sony nec sanyomce_kbdrc-6 sharp xmp imon Enabled protocols: lirc
bus: 25, vendor/product: 10ad:00f1, version:0x0004
Repeat delay = 500 ms, repeat period = 125 msQuoted 8 lines
Alternatively, you simply specify the path to the object file on the command line:
$ ir-keytable -e header_pulse=9000,header_space=4500 -p ./pulse_distance.oDerek, please note that you can now convert the dish lircd.conf to toml and load the keymap; it should just work. It would be great to have your feedback, thank you.
I did a few tests with one of my RC-5 remotes, this lircd.conf file
https://github.com/PiSupply/JustBoom/blob/master/LIRC/lircd.conf
and kernel 4.18-rc5 on RPi2, with the 32bit ARM kernel and gpio-ir-recv, and on LePotato / aarch64 with meson-ir.
Quoted 6 lines
Quoted 2 lines
lircd2toml.pydid a really good job on converting it, the only thing missing was thetoggle_bit.Right, there was a bug in
lirc2html.py. I've added a fix to my bpf branch:
Thanks a lot, lircd2toml.py now also seems to detect that the lircd.conf uses the rc-5 protocol and uses the rc-5 decoder - that's really nice!
Quoted 29 lines
Quoted 20 lines
When testing the converted toml (with "
toggle_bit= 11" added and the obvious volume keycode fixes) I noticed a couple of issues:Buttons seem to be "stuck". The scancode is decoded,
key_downevent is generated, but after release thekey_downevents repeat indefinitely - with the built-in rc-5 decoder this works fine.root@upstream:/home/hias/ir-test# ir-keytable -c -w justboom.toml -t Old keytable cleared Wrote 12 keycode(s) to driver Protocols changed to Loaded BPF protocol manchester Testing events. Please, press CTRL-C to abort. 29.065820: lirc protocol(66): scancode = 0x141b 29.065890: event type EV_MSC(0x04): scancode = 0x141b 29.065890: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 29.065890: event type EV_SYN(0x00). 29.570059: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 29.570059: event type EV_SYN(0x00). 29.710062: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c)Quoted 8 lines
29.710062: event type EV_SYN(0x00). 29.850057: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 29.850057: event type EV_SYN(0x00). 29.990057: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 29.990057: event type EV_SYN(0x00). 30.130055: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c) 30.130055: event type EV_SYN(0x00). ...
Quoted 3 lines
Thanks, I had not seen this yet either. There is a fix here:
https://www.mail-archive.com/[email protected]/msg133813.html
Thanks, the patch seems to fix it, I posted a small nit in the thread.
Quoted 8 lines
Quoted 4 lines
Even scancodes, eg
KEY_UP/ scancode0x141a, aren't decoded at all, only odd scancodes work. My guess is the manchester decoder could have a problem when the last bit is zero and the message doesn't end with a pulse, but a (rather long) timeout.Yep, yet another bug! I'v added a fix here:
Thanks, using the manchester decoder with rc-5 looks fine now!
Quoted 24 lines
Quoted 15 lines
(Re-)loading a bpf decoder only works 8 times. The 9th attempt gives an error message.
# for i in `seq 1 9` ; do ir-keytable -p manchester ; done Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed toQuoted 8 lines
Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to Loaded BPF protocol manchester Protocols changed to failed to create a map: 1 Operation not permitted Loaded BPF protocol manchester
Quoted 4 lines
There was a bug where bpf programs were leaked on detach. Unfortunately the fix had not made it to the branch when you were testing.
https://www.mail-archive.com/[email protected]/msg133273.html
Thanks, this fixed worked, too!
Work is keeping me busy ATM but I'll see if I find some time to do a few more tests. So far it's already looking very good!
so long,
Hias