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, };