From 802381dd728b5db13b91fea2d57ea6e2aca78177 Mon Sep 17 00:00:00 2001 From: GetAway Date: Sun, 11 Mar 2018 17:18:21 +0100 Subject: [PATCH] getrc: add RC Support for more Hardware - bump version 0.03 please build with -DHAVE_ARM_HARDWARE -DHAVE_COOL_HARDWARE --- getrc.c | 2 ++ io.c | 6 ++-- io.h | 2 -- rc_device.h | 21 ++++++++++++++ readme.txt | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 111 insertions(+), 4 deletions(-) create mode 100644 rc_device.h create mode 100644 readme.txt diff --git a/getrc.c b/getrc.c index 1b4e152..1d1e533 100644 --- a/getrc.c +++ b/getrc.c @@ -5,6 +5,8 @@ //#include "getrc.h" #include "io.h" +#define VERSION 0.03 + int main (int argc, char **argv) { int rv='X',i; diff --git a/io.c b/io.c index 32af32a..68407ff 100644 --- a/io.c +++ b/io.c @@ -17,8 +17,7 @@ #include #include "io.h" - -#define RC_DEVICE "/dev/input/nevis_ir" +#include "rc_device.h" struct input_event ev; static unsigned short rccode=-1; @@ -27,6 +26,8 @@ static int rc; int InitRC(void) { rc = open(RC_DEVICE, O_RDONLY); + if(rc == -1) + rc = open(RC_DEVICE_FALLBACK, O_RDONLY); if(rc == -1) { perror("getrc "); @@ -49,6 +50,7 @@ int RCKeyPressed(void) if(ev.code) { rccode=ev.code; +//printf("getrc: rccode raw: %04X\n",ev.code); return 1; } } diff --git a/io.h b/io.h index 79f61f6..e18d8e2 100644 --- a/io.h +++ b/io.h @@ -2,8 +2,6 @@ #define __IO_H__ -#define RC_DEVICE "/dev/input/nevis_ir" - // rc codes #undef KEY_0 diff --git a/rc_device.h b/rc_device.h new file mode 100644 index 0000000..bad11e3 --- /dev/null +++ b/rc_device.h @@ -0,0 +1,21 @@ +#ifdef HAVE_CONFIG_H +#include +#endif + +#if HAVE_COOL_HARDWARE +#define RC_DEVICE "/dev/input/nevis_ir" +#define RC_DEVICE_FALLBACK "/dev/input/event0" + +#elif HAVE_SPARK_HARDWARE +#define RC_DEVICE "/dev/input/nevis_ir" +#define RC_DEVICE_FALLBACK "/dev/input/event1" + +#elif HAVE_DUCKBOX_HARDWARE +#define RC_DEVICE "/dev/input/event0" +#define RC_DEVICE_FALLBACK "/dev/input/event1" +#else +#define RC_DEVICE "/dev/input/event1" +#define RC_DEVICE_FALLBACK "/dev/input/event0" + +#endif + diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..9d72014 --- /dev/null +++ b/readme.txt @@ -0,0 +1,84 @@ +Was ist getrc? +---------------------------------- +getrc ermöglicht die Abfrage der Fernbedienung nun auch für Scripte. Mit vorgebbarem +Timeout und optionaler Zieltaste kann nun auch aus Scripten flexibel auf Fernbedie- +numgsaktionen reagiert werden. + +Installation +---------------------------------- +Die Datei getrc kommt mit den Rechten 755 nach /var/bin/. Das ist alles. + +Anwendung +---------------------------------- +Der Aufruf von getrc kann aus einem Script heraus erfolgen. getrc gibt nun entweder +den Code der gedrückten Taste über die Konsole zurück oder ein "X", wenn ein Timeout +aufgetreten ist. Den Tasten sind dabei folgende Codes zugeordnet: + + Taste + 0 0 + 1 1 + 2 2 + 3 3 + 4 4 + 5 5 + 6 6 + 7 7 + 8 8 + 9 9 + RECHTS A + LINKS B + HOCH C + RUNTER D + OK E + MUTE F + STANDBY G + GRUEN H + GELB I + ROT J + BLAU K + VOL_PLUS L + VOL_MINUS M + HELP N + MENU O + EXIT P + + extra Tasten der Coolstream + + PAGEUP Q + PAGEDOWN R + TV/R S + TTX T + COOL U + FAV V + EPG W + V.F Y + SAT Z + SKIP+ a + SKIP- b + T/S c + AUDIO d + REW e + FWD f + PAUSE g + REC h + STOP i + PLAY j + +Die Aufrufzeile sieht so aus: + + getrc key=X timeout=ms + +mit X=Tastencode und ms=Timeoutzeit in Millisekunden. Der Aufruf "getrc key=E timeout=5000" +würde also höchstens 5 Sekunden lang auf das Drücken der OK warten. Wird innerhalb dieser +Zeit die OK-Taste gedrückt, kehrt getrc mit der Konsolenausgabe "E" zurück. Anderenfalls +würde es nach 5 Sekunden "X" auf der Konsole ausgeben und sich beenden. Die Parameter "key=" +und "timeout=" sind optional und können einzeln oder auch beide weggelassen werden. Ein +Aufruf "getrc key=P" würde also unbegrenzt lange auf das Drücken der HOME-Taste warten, +der Aufruf "getrc timeout=5000" 5 Sekunden lang auf einen beliebigen Tastendruck und "getrc" +schließlich unbegrenzt lange auf einen beliebigen Tastendruck. +Um die Konsolenausgabe von getrc im Script beispielsweise der Variable "key" zuzuweisen, +muß der Aufruf so erfolgen: + + key=`getrc` + +wahlweise natürlich auch wieder mit den Kommandozeilenparametern. -- 2.39.5