With this tool you can re-define keys of your remote control, by assigning any other key or commandline (allowing key macros, for example).
Usage:
*For D series (arm), replace every instance of /mnt below by /mtd_rwcommon/widgets/user/SamyGO/SamyGO
*For C series (arm), replace every instance of /mnt below by /SamyGO on your rooting USB device
- Get latest samyGOso from there and copy/overwrite samyGOso file (not folder) to /mnt/opt/privateer/usr/bin
- Set permissions if needed (usually not if overwritten)
Code: Select all
chmod +x /mnt/opt/privateer/usr/bin/samyGOso
- Extract attached archives and copy libRCremap.so and libRCremap.config to /mnt/opt/privateer/usr/libso (folder may not exist, create it if needed. Both files always have to be together in same folder)
- Execute
You can only remap keys once per TV boot. If you need to redefine keys, you have to reboot TV first.
Code: Select all
samyGOso -d -T -B -r -l /mnt/opt/privateer/usr/libso/libRCremap.so
- Default config is for testing only and should invert up/down and left/right keys, and create/delete a test file with keys 1/2, so you HAVE TO edit libRCremap.config. Here's default config:"KEY_to_remap": "KEY_to_assign"SpoilerShow
Code: Select all
[ { "KEY_VOLUP": "KEY_VOLDOWN" }, { "KEY_VOLDOWN": "KEY_VOLUP" }, { "KEY_CHDOWN": "KEY_CHUP" }, { "KEY_CHUP": "KEY_CHDOWN" }, { "KEY_1": "CMD:touch /tmp/test.txt" }, { "KEY_2": "CMD:rm /tmp/test.txt" } ]
For validating config you can use e.g. http://jsonlint.com/ - Key list:
SpoilerShow
Code: Select all
enum samyGO_RCKeys { KEY_MTS = 0, KEY_SOURCE = 1, BD_KEY_POWER = 2, KEY_SLEEP = 3, KEY_1 = 4, KEY_2 = 5, KEY_3 = 6, KEY_VOLUP = 7, KEY_4 = 8, KEY_5 = 9, KEY_6 = 10, KEY_VOLDOWN = 11, KEY_7 = 12, KEY_8 = 13, KEY_9 = 14, KEY_MUTE = 15, KEY_CHDOWN = 16, KEY_0 = 17, KEY_CHUP = 18, KEY_PRECH = 19, KEY_GREEN = 20, KEY_YELLOW = 21, KEY_CYAN = 22, KEY_VAL_23 = 23, KEY_VAL_24 = 24, KEY_ADDDEL = 25, KEY_MENU = 26, KEY_TV = 27, KEY_VAL_28 = 28, KEY_VAL_29 = 29, KEY_VAL_30 = 30, KEY_INFO = 31, KEY_PIP_ONOFF = 32, KEY_PIP_SWAP = 33, KEY_VAL_34 = 34, KEY_PLUS100 = 35, KEY_VAL_36 = 36, KEY_CAPTION = 37, KEY_VAL_38 = 38, KEY_AD = 39, KEY_PMODE = 40, KEY_VAL_41 = 41, KEY_VAL_42 = 42, KEY_VAL_43 = 43, KEY_TTX_MIX = 44, KEY_EXIT = 45, KEY_VAL_46 = 46, KEY_PIP_SIZE = 47, KEY_MAGIC_CHANNEL = 48, KEY_PIP_SCAN = 49, KEY_PIP_CHUP = 50, KEY_PIP_CHDOWN = 51, KEY_DEVICE_CONNECT = 52, KEY_HELP = 53, KEY_ANTENA = 54, KEY_CONVERGENCE = 55, KEY_11 = 56, KEY_12 = 57, KEY_AUTO_PROGRAM = 58, KEY_RSURF = 61, KEY_PICTURE_SIZE = 62, KEY_TOPMENU = 63, KEY_GAME = 64, KEY_QUICK_REPLAY = 65, KEY_STILL_PICTURE = 66, KEY_DTV = 67, KEY_FAVCH = 68, KEY_REWIND = 69, KEY_STOP = 70, KEY_PLAY = 71, KEY_FF = 72, KEY_REC = 73, KEY_PAUSE = 74, KEY_TOOLS = 75, KEY_INSTANT_REPLAY = 76, KEY_LINK = 77, KEY_FF_ = 78, KEY_GUIDE = 79, KEY_REWIND_ = 80, KEY_ANGLE = 81, KEY_RESERVED1 = 82, KEY_ZOOM1 = 83, KEY_PROGRAM = 84, KEY_BOOKMARK = 85, KEY_DISC_MENU = 86, KEY_PRINT = 87, KEY_RETURN = 88, KEY_SUB_TITLE = 89, KEY_CLEAR = 90, KEY_VCHIP = 91, KEY_REPEAT = 92, KEY_DOOR = 93, KEY_OPEN = 94, KEY_WHEEL_LEFT = 95, KEY_UP = 96, KEY_DOWN = 97, KEY_RIGHT = 98, KEY_DMA = 99, KEY_TURBO = 100, KEY_LEFT = 101, KEY_FM_RADIO = 102, KEY_DVR_MENU = 103, KEY_ENTER = 104, KEY_PCMODE = 105, KEY_TTX_SUBFACE = 106, KEY_CH_LIST = 107, KEY_RED = 108, KEY_DNIe = 109, KEY_SRS = 110, KEY_CONVERT_AUDIO_MAINSUB = 111, KEY_MDC = 112, KEY_SEFFECT = 113, KEY_DVR = 114, KEY_DTV_SIGNAL = 115, KEY_LIVE = 116, KEY_PERPECT_FOCUS = 117, KEY_HOME = 118, KEY_ESAVING = 119, KEY_WHEEL_RIGHT = 120, KEY_CONTENTS = 121, KEY_VCR_MODE = 122, KEY_CATV_MODE = 123, KEY_DSS_MODE = 124, KEY_TV_MODE = 125, KEY_DVD_MODE = 126, KEY_STB_MODE = 127, KEY_CALLER_ID = 128, KEY_SCALE = 129, KEY_ZOOM_MOVE = 130, KEY_CLOCK_DISPLAY = 131, KEY_AV1 = 132, KEY_SVIDEO1 = 133, KEY_COMPONENT1 = 134, KEY_SETUP_CLOCK_TIMER = 135, KEY_COMPONENT2 = 136, KEY_MAGIC_BRIGHT = 137, KEY_DVI = 138, KEY_HDMI = 139, KEY_W_LINK = 140, KEY_DTV_LINK = 141, KEY_VAL_142 = 142, KEY_APP_LIST = 143, KEY_BACK_MHP = 144, KEY_ALT_MHP = 145, KEY_DNSe = 146, KEY_RSS = 147, KEY_ENTERTAINMENT = 148, KEY_ID_INPUT = 149, KEY_ID_SETUP = 150, KEY_ANYNET = 151, KEY_POWEROFF = 152, KEY_POWERON = 153, KEY_ANYVIEW = 154, KEY_MS = 155, KEY_MORE = 156, KEY_PANNEL_POWER = 157, KEY_PANNEL_CHUP = 158, KEY_PANNEL_CHDOWN = 159, KEY_PANNEL_VOLUP = 160, KEY_PANNEL_VOLDOW = 161, KEY_PANNEL_ENTER = 162, KEY_PANNEL_MENU = 163, KEY_PANNEL_SOURCE = 164, KEY_AV2 = 165, KEY_AV3 = 166, KEY_SVIDEO2 = 167, KEY_SVIDEO3 = 168, KEY_ZOOM2 = 169, KEY_PANORAMA = 170, KEY_4_3 = 171, KEY_16_9 = 172, KEY_DYNAMIC = 173, KEY_STANDARD = 174, KEY_MOVIE1 = 175, KEY_CUSTOM = 176, KEY_AUTO_ARC_RESET = 177, KEY_AUTO_ARC_LNA_ON = 178, KEY_AUTO_ARC_LNA_OFF = 179, KEY_AUTO_ARC_ANYNET_MODE_OK = 180, KEY_AUTO_ARC_ANYNET_AUTO_START = 181, KEY_AUTO_FORMAT = 182, KEY_DNET = 183, KEY_HDMI1 = 184, KEY_AUTO_ARC_CAPTION_ON = 185, KEY_AUTO_ARC_CAPTION_OFF = 186, KEY_AUTO_ARC_PIP_DOUBLE = 187, KEY_AUTO_ARC_PIP_LARGE = 188, KEY_AUTO_ARC_PIP_SMALL = 189, KEY_AUTO_ARC_PIP_WIDE = 190, KEY_AUTO_ARC_PIP_LEFT_TOP = 191, KEY_AUTO_ARC_PIP_RIGHT_TOP = 192, KEY_AUTO_ARC_PIP_LEFT_BOTTOM = 193, KEY_AUTO_ARC_PIP_RIGHT_BOTTOM = 194, KEY_AUTO_ARC_PIP_CH_CHANGE = 195, KEY_AUTO_ARC_AUTOCOLOR_SUCCESS = 196, KEY_AUTO_ARC_AUTOCOLOR_FAIL = 197, KEY_AUTO_ARC_C_FORCE_AGING = 198, KEY_AUTO_ARC_USBJACK_INSPECT = 199, KEY_AUTO_ARC_JACK_IDENT = 200, KEY_NINE_SEPERATE = 201, KEY_ZOOM_IN = 202, KEY_ZOOM_OUT = 203, KEY_MIC = 204, KEY_HDMI2 = 205, KEY_HDMI3 = 206, KEY_AUTO_ARC_CAPTION_KOR = 207, KEY_AUTO_ARC_CAPTION_ENG = 208, KEY_AUTO_ARC_PIP_SOURCE_CHANGE = 209, KEY_HDMI4 = 210, KEY_AUTO_ARC_ANTENNA_AIR = 211, KEY_AUTO_ARC_ANTENNA_CABLE = 212, KEY_AUTO_ARC_ANTENNA_SATELLITE = 213, KEY_EXT1 = 214, KEY_EXT2 = 215, KEY_EXT3 = 216, KEY_EXT4 = 217, KEY_EXT5 = 218, KEY_EXT6 = 219, KEY_EXT7 = 220, KEY_EXT8 = 221, KEY_EXT9 = 222, KEY_EXT10 = 223, KEY_EXT11 = 224, KEY_EXT12 = 225, KEY_EXT13 = 226, KEY_EXT14 = 227, KEY_EXT15 = 228, KEY_EXT16 = 229, KEY_EXT17 = 230, KEY_EXT18 = 231, KEY_EXT19 = 232, KEY_EXT20 = 233, KEY_EXT21 = 234, KEY_EXT22 = 235, KEY_EXT23 = 236, KEY_EXT24 = 237, KEY_EXT25 = 238, KEY_EXT26 = 239, KEY_EXT27 = 240, KEY_EXT28 = 241, KEY_EXT29 = 242, KEY_EXT30 = 243, KEY_EXT31 = 244, KEY_EXT32 = 245, KEY_EXT33 = 246, KEY_EXT34 = 247, KEY_EXT35 = 248, KEY_EXT36 = 249, KEY_EXT37 = 250, KEY_EXT38 = 251, KEY_EXT39 = 252, KEY_EXT40 = 253, KEY_EXT41 = 254, KEY_SERVICE = 59, KEY_3SPEED = 60, };
- List of most interesting keys:
SpoilerShow
Code: Select all
3D = KEY_PANNEL_CHDOWN Support = KEY_TOPMENU Fam. Story = KEY_AUTO_ARC_C_FORCE_AGING History = KEY_AUTO_ARC_CAPTION_ENG AD/Subt. = KEY_AD AD/Subt. = KEY_CAPTION Camera = KEY_AUTO_ARC_USBJACK_INSPECT Search = KEY_DTV_SIGNAL Sleeptimer = KEY_SLEEP Bluetooth on/off? = KEY_AUTO_ARC_PIP_SOURCE_CHANGE Picture Format = KEY_ASPECT Picture Format = KEY_PICTURE_SIZE Social TV = KEY_TURBO AllShare Play = KEY_AV2 SmartTV = KEY_CONTENTS Direct to internet browser = KEY_CONVERGENCE Energie Saving = KEY_ESAVING Picture Mode = KEY_PMODE "D" = KEY_APP_LIST
- Autostart
- Copy 99_95_RCremap.init to /mnt/etc/init.d
- Set permissions
Code: Select all
chmod +x /mnt/etc/init.d/99_95_RCremap.init
- With that version, it's possible to map a commandline to any remote control key. To do so, you have to remap to CMD:/path/to/your/script in libRCremap.config file. e.g.:Don't forget to give execution rights to your script (chmod +x /mnt/opt/privateer/usr/bin/script)
Code: Select all
... { "KEY_DTV_SIGNAL": "CMD:/mnt/opt/privateer/usr/bin/script" }, ...
- Every script have to begin with a little check to prevent several instances of it to be executed at once (in case you press RC key "a bit too long":You may also add some sleep at the end of it to prevent new execution before some time. e.g. 2 seconds:
Code: Select all
#!/bin/sh [ $(pidof ${0##*/}) ] 2>/dev/null || exit 0
Code: Select all
sleep 2
- Here's sample full script sending consecutive keys (macro), uses samyGOrc (check your TV series section if you want to get and install suitable version, and for how-to)SpoilerShowWhat script does: KEY_CH_LIST->KEY_RED->wait 1 sec->KEY_DOWN->KEY_ENTER->wait 3 sec->Key_EXIT->KEY_EXIT
Code: Select all
#!/bin/sh [ $(pidof ${0##*/}) ] 2>/dev/null || exit 0 PATCHDIR=${0%/*} PID_EXE=$(pidof exeDSP || pidof exeTV) $PATCHDIR/samyGOrc -p $PID_EXE 107 108 # CH_LIST, RED sleep 1 $PATCHDIR/samyGOrc -p $PID_EXE 97 104 # DOWN, ENTER sleep 3 $PATCHDIR/samyGOrc -p $PID_EXE 45 45 # EXIT, EXIT
It's supposed to move to next tuner type on (at least) E series. Just an example anyway.
samyGOrc and CMD script have to be in the same folder together.
In case you couldn't find expected key(s) to remap, especially due to labels consistency (!!), here's a small tool to monitor RC keypresses (D/E/F/H only)
- Extract archive and copy libLogRCkey.so to /mnt/opt/privateer/usr/libso
- Inject:
Code: Select all
samyGOso -d -T -B -r -l /mnt/opt/privateer/usr/libso/libLogRCkey.so
- Each keypress will be then logged to /dtv/LogRCkey.logSpoilerShow
Code: Select all
[...] [LogRCkey] Init done, now monitoring RC keypress... [LogRCkey] Input: 0 Key: 104 KEY_ENTER [LogRCkey] Input: 0 Key: 98 KEY_RIGHT [LogRCkey] Input: 0 Key: 97 KEY_DOWN [LogRCkey] Input: 0 Key: 96 KEY_UP [LogRCkey] Input: 0 Key: 101 KEY_LEFT [LogRCkey] Input: 1 Key: 7 KEY_VOLUP [LogRCkey] Input: 1 Key: 11 KEY_VOLDOWN [...]
Code: Select all
2/4/2014
v0.3.5 - added surprise :)
* Fixed multiple keys issue on D
* Added C support
* CMD support
1/9/2013
v0.2.2 - public release version