[vdr] [PATCH] Extra remote control keys

Darren Salt linux at youmustbejoking.demon.co.uk
Mon Mar 20 19:22:22 CET 2006


The attached patches provide support for three keys found on some remote
controls such as the A415 (supplied with various current Hauppauge cards).

The keys are "repeat", "skip" and "previous channel". The last of these is
obvious; the other two duplicate the functions of the yellow and green
buttons during recording playback.

(If the first two are accepted, I'll apply the third one to xine-lib CVS.)

-- 
| Darren Salt    | linux or ds at              | nr. Ashington, | Toon
| RISC OS, Linux | youmustbejoking,demon,co,uk | Northumberland | Army
| + Generate power using sun, wind, water, nuclear.      FORGET COAL AND OIL.

Statistics are used as a drunk uses lamp posts - support, not illumination.
-------------- next part --------------
diff -urNad vdr-1.3.44~/keys.c vdr-1.3.44/keys.c
--- vdr-1.3.44~/keys.c	2006-03-20 04:22:15.000000000 +0000
+++ vdr-1.3.44/keys.c	2006-03-20 04:22:17.705949528 +0000
@@ -39,9 +39,12 @@
                     { kRecord,        "Record"     },
                     { kFastFwd,       "FastFwd"    },
                     { kFastRew,       "FastRew"    },
+                    { kSkipBack,      "SkipBack"   },
+                    { kSkipFwd,       "SkipFwd"    },
                     { kPower,         "Power"      },
                     { kChanUp,        "Channel+"   },
                     { kChanDn,        "Channel-"   },
+                    { kChanPrev,      "PrevChannel"},
                     { kVolUp,         "Volume+"    },
                     { kVolDn,         "Volume-"    },
                     { kMute,          "Mute"       },
diff -urNad vdr-1.3.44~/keys.h vdr-1.3.44/keys.h
--- vdr-1.3.44~/keys.h	2006-03-20 04:22:15.000000000 +0000
+++ vdr-1.3.44/keys.h	2006-03-20 04:22:17.705949528 +0000
@@ -33,9 +33,12 @@
              kRecord,
              kFastFwd,
              kFastRew,
+             kSkipBack,
+             kSkipFwd,
              kPower,
              kChanUp,
              kChanDn,
+             kChanPrev,
              kVolUp,
              kVolDn,
              kMute,
diff -urNad vdr-1.3.44~/menu.c vdr-1.3.44/menu.c
--- vdr-1.3.44~/menu.c	2006-03-20 04:22:17.000000000 +0000
+++ vdr-1.3.44/menu.c	2006-03-20 04:22:17.705949528 +0000
@@ -4174,8 +4174,12 @@
     case kFastFwd:
     case kRight:   Forward(); break;
     case kRed:     TimeSearch(); break;
+    case kSkipBack|k_Repeat:
+    case kSkipBack:
     case kGreen|k_Repeat:
     case kGreen:   SkipSeconds(-60); break;
+    case kSkipFwd|k_Repeat:
+    case kSkipFwd:
     case kYellow|k_Repeat:
     case kYellow:  SkipSeconds( 60); break;
     case kStop:
diff -urNad vdr-1.3.44~/vdr.c vdr-1.3.44/vdr.c
--- vdr-1.3.44~/vdr.c	2006-03-20 04:22:16.000000000 +0000
+++ vdr-1.3.44/vdr.c	2006-03-20 04:22:24.665500778 +0000
@@ -1036,6 +1036,7 @@
               }
            switch (key) {
              // Toggle channels:
+             case kChanPrev:
              case k0: {
                   if (PreviousChannel[PreviousChannelIndex ^ 1] == LastChannel || LastChannel != PreviousChannel[0] && LastChannel != PreviousChannel[1])
                      PreviousChannelIndex ^= 1;
-------------- next part --------------
diff -urNad vdr-plugin-xine-0.7.7~/xineRemote.c vdr-plugin-xine-0.7.7/xineRemote.c
--- vdr-plugin-xine-0.7.7~/xineRemote.c	2006-02-03 20:34:58.000000000 +0000
+++ vdr-plugin-xine-0.7.7/xineRemote.c	2006-03-20 04:22:52.231723315 +0000
@@ -52,6 +52,15 @@
 #else
     kNone,
 #endif
+#if VDRVERSNUM >= 10344 // FIXME - probably 10345
+    kSkipBack,
+    kSkipFwd,
+    kChanPrev,
+#else
+    kNone,
+    kNone,
+    kNone,
+#endif
   };
 
   cXineRemote::cXineRemote(const bool remoteOn)
-------------- next part --------------
diff -urNad xine-lib-vdr-1.1.1~/include/xine.h.in xine-lib-vdr-1.1.1/include/xine.h.in
--- xine-lib-vdr-1.1.1~/include/xine.h.in	2006-03-20 04:33:05.724165479 +0000
+++ xine-lib-vdr-1.1.1/include/xine.h.in	2006-03-20 04:34:23.467152632 +0000
@@ -1526,6 +1526,9 @@
 #define XINE_EVENT_VDR_MUTE             331
 #define XINE_EVENT_VDR_AUDIO            332
 #define XINE_EVENT_VDR_INFO		333
+#define XINE_EVENT_VDR_SKIPBACK		334
+#define XINE_EVENT_VDR_SKIPFWD		335
+#define XINE_EVENT_VDR_CHANNELPREVIOUS	336
 /* some space for further keys */
 #define XINE_EVENT_VDR_SETVIDEOWINDOW   350
 #define XINE_EVENT_VDR_FRAMESIZECHANGED 351
diff -urNad xine-lib-vdr-1.1.1~/src/vdr/input_vdr.c xine-lib-vdr-1.1.1/src/vdr/input_vdr.c
--- xine-lib-vdr-1.1.1~/src/vdr/input_vdr.c	2006-03-20 04:33:05.728165221 +0000
+++ xine-lib-vdr-1.1.1/src/vdr/input_vdr.c	2006-03-20 04:38:03.032995082 +0000
@@ -1689,6 +1689,9 @@
   case XINE_EVENT_VDR_MUTE:            key = key_mute;             break;
   case XINE_EVENT_VDR_AUDIO:           key = key_audio;            break;
   case XINE_EVENT_VDR_INFO:            key = key_info;             break;
+  case XINE_EVENT_VDR_SKIPBACK:        key = key_skip_back;        break;
+  case XINE_EVENT_VDR_SKIPFWD:         key = key_skip_fwd;         break;
+  case XINE_EVENT_VDR_CHANNELPREVIOUS: key = key_channel_previous; break;
   default:
     return;
   }
diff -urNad xine-lib-vdr-1.1.1~/src/vdr/input_vdr.h xine-lib-vdr-1.1.1/src/vdr/input_vdr.h
--- xine-lib-vdr-1.1.1~/src/vdr/input_vdr.h	2006-03-20 04:33:05.732164964 +0000
+++ xine-lib-vdr-1.1.1/src/vdr/input_vdr.h	2006-03-20 04:37:02.784879865 +0000
@@ -93,6 +93,9 @@
   key_user9,
   key_audio,
   key_info,
+  key_skip_back,
+  key_skip_fwd,
+  key_channel_previous,
 };
 
 


More information about the vdr mailing list