]> git.webhop.me Git - getrc.git/commitdiff
getrc: add RC Support for more Hardware
authorGetAway <get-away@t-online.de>
Sun, 11 Mar 2018 16:18:21 +0000 (17:18 +0100)
committerGetAway <get-away@t-online.de>
Sun, 11 Mar 2018 16:18:21 +0000 (17:18 +0100)
- bump version 0.03

please build with -DHAVE_ARM_HARDWARE
                  -DHAVE_COOL_HARDWARE

getrc.c
io.c
io.h
rc_device.h [new file with mode: 0644]
readme.txt [new file with mode: 0644]

diff --git a/getrc.c b/getrc.c
index 1b4e1523c0ad8ec994cb898f57615d6d366a4fd0..1d1e53362cb0cccf27756c0e74aadf3cdd7f2267 100644 (file)
--- 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 32af32a4e4be15fab33f46541c221faab6beeceb..68407fff57f2b99e729f40c947c91c989216c305 100644 (file)
--- a/io.c
+++ b/io.c
@@ -17,8 +17,7 @@
 #include <linux/input.h>
 
 #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 <open remote control>");
@@ -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 79f61f682b5842bdf02db7a17a9b094caf1febc3..e18d8e2a54abdf229a5ed1ffc71c21604676db10 100644 (file)
--- 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 (file)
index 0000000..bad11e3
--- /dev/null
@@ -0,0 +1,21 @@
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#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 (file)
index 0000000..9d72014
--- /dev/null
@@ -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.