summaryrefslogtreecommitdiff
path: root/vdr.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2003-05-04 18:00:00 +0200
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2003-05-04 18:00:00 +0200
commitaf2a135212088f0cba6bd8f98544b271c2f71bef (patch)
tree2cb92bca5d346a4214f5be25c3388887419585b8 /vdr.c
parent0686038af36be65b666bce669957c4d94c13f409 (diff)
downloadvdr-patch-lnbsharing-af2a135212088f0cba6bd8f98544b271c2f71bef.tar.gz
vdr-patch-lnbsharing-af2a135212088f0cba6bd8f98544b271c2f71bef.tar.bz2
Version 1.1.30vdr-1.1.30
- Fixed minimum lifespan of deleted recordings (thanks to Jaakko Hyvätti). - Updated French OSD texts (thanks to Olivier Jacques). - Fixed paging through lists with repeated Left/Right keys. - Fixed setting the PCR-PID in case it is equal to one of the other PIDs (thanks to Oliver Endriss for reporting this one). - Fixed double call to MainMenuAction() of a plugin if invoked via a hotkey (thanks to Kai Moeller for reporting this one). - Fixed handling dedicated keys. - Now turning off live PIDs when replaying. This avoids short spikes from other channels when switching between Transfer Mode channels, and also lets an ongoing replay continue even if a recording is started on the primary device. - The RCU channel display no longer changes when a recording on a different channel starts on the primary device. - Restoring the current channel in case a recording has switched the transponder. If all devices are busy and none of them can provide the current channel, the message "Channel not available!" will be displayed. - Removed the (no longer necessary) 'panic' stuff from cThread. - Added cStatus::OsdItem() to provide the entire list of menu items to a plugin (thanks to Carsten Siebholz). - The red ("Record") and yellow ("Pause") button in the "Main" menu are no longer available when replaying.
Diffstat (limited to 'vdr.c')
-rw-r--r--vdr.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/vdr.c b/vdr.c
index a160e4c..ae4edd5 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
*
* The project's page is at http://www.cadsoft.de/people/kls/vdr
*
- * $Id: vdr.c 1.150 2003/04/21 14:41:41 kls Exp $
+ * $Id: vdr.c 1.152 2003/05/03 13:39:57 kls Exp $
*/
#include <getopt.h>
@@ -53,6 +53,7 @@
#include "tools.h"
#include "videodir.h"
+#define MINCHANNELWAIT 10 // seconds to wait between failed channel switchings
#define ACTIVITYTIMEOUT 60 // seconds before starting housekeeping
#define SHUTDOWNWAIT 300 // seconds to wait in user prompt before automatic shutdown
#define MANUALSTART 600 // seconds the next timer must be in the future to assume manual start
@@ -460,9 +461,14 @@ int main(int argc, char *argv[])
}
// Attach launched player control:
cControl::Attach();
- // Make sure Transfer-Mode is re-started after detaching a player:
- if (cDevice::PrimaryDevice()->PlayerDetached() && !cDevice::PrimaryDevice()->Replaying())
- Channels.SwitchTo(cDevice::CurrentChannel());
+ // Make sure we have a visible programme in case device usage has changed:
+ if (!cDevice::PrimaryDevice()->HasProgramme()) {
+ static time_t lastTime = 0;
+ if (time(NULL) - lastTime > MINCHANNELWAIT) {
+ if (!Channels.SwitchTo(cDevice::CurrentChannel()))
+ lastTime = time(NULL); // don't do this too often
+ }
+ }
// Restart the Watchdog timer:
if (WatchdogTimeout > 0) {
int LatencyTime = WatchdogTimeout - alarm(WatchdogTimeout);
@@ -503,6 +509,7 @@ int main(int argc, char *argv[])
switch (key) {
// Menu control:
case kMenu:
+ key = kNone; // nobody else needs to see this key
if (Menu) {
DELETENULL(Menu);
if (!Temp)
@@ -518,14 +525,15 @@ int main(int argc, char *argv[])
if (cControl::Control())\
cControl::Control()->Hide();\
Menu = new cMenuMain(cControl::Control(), function);\
- Temp = NULL;
+ Temp = NULL;\
+ key = kNone; // nobody else needs to see this key
case kSchedule: DirectMainFunction(osSchedule); break;
case kChannels: DirectMainFunction(osChannels); break;
case kTimers: DirectMainFunction(osTimers); break;
case kRecordings: DirectMainFunction(osRecordings); break;
case kSetup: DirectMainFunction(osSetup); break;
case kCommands: DirectMainFunction(osCommands); break;
- case kUser1 ... kUser9: cRemote::PutMacro(key); break;
+ case kUser1 ... kUser9: cRemote::PutMacro(key); key = kNone; break;
case k_Plugin: DirectMainFunction(osPlugin, cRemote::GetPlugin()); break;
// Channel up/down:
case kChanUp|k_Repeat: