diff options
| author | Klaus Schmidinger <vdr@tvdr.de> | 2005-08-07 11:37:48 +0200 | 
|---|---|---|
| committer | Klaus Schmidinger <vdr@tvdr.de> | 2005-08-07 11:37:48 +0200 | 
| commit | 7d54c997ab0bd1ce248e4dbc18d21a2dd0fe2934 (patch) | |
| tree | 382f7017fe6d7d2acda4b11f41e3778ab84cf62a | |
| parent | da0030deff4b0086edbd25d784fc0fe309cd4256 (diff) | |
| download | vdr-7d54c997ab0bd1ce248e4dbc18d21a2dd0fe2934.tar.gz vdr-7d54c997ab0bd1ce248e4dbc18d21a2dd0fe2934.tar.bz2 | |
Modified cEITScanner::Process() to use the primary device if replaying, and do a forced scan even if timeout is 0
| -rw-r--r-- | CONTRIBUTORS | 4 | ||||
| -rw-r--r-- | HISTORY | 4 | ||||
| -rw-r--r-- | eitscan.c | 9 | 
3 files changed, 13 insertions, 4 deletions
| diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 82e4ffe3..facb090d 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1410,3 +1410,7 @@ Matthias Lenk <matthias.lenk@amd.com>  Frank Krömmelbein <kroemmelbein@gmx.de>   for adding missing storing of the MenuScrollPage parameter + +Bernhard Stegmaier <bernhard.stegmaier@in.tum.de> + for reporting a problem in cEITScanner::Process() with forced EPG scans if EPG + scan timeout is set to 0 @@ -3663,3 +3663,7 @@ Video Disk Recorder Revision History  - Added missing storing of the MenuScrollPage parameter (thanks to Frank Krömmelbein).  - Added cRemux::SetTimeouts() for better use of cRemux in a single thread (thanks    to Udo Richter for reporting a problem with this). +- Modified cEITScanner::Process() so that it uses the primary device if it is +  replaying and is the only device that provides the given transponder, and that +  a forced EPG scan works even if EPG scan timeout is set to 0 (thanks to +  Bernhard Stegmaier for reporting a problem with this). @@ -4,7 +4,7 @@   * See the main source file 'vdr.c' for copyright information and   * how to reach the author.   * - * $Id: eitscan.c 1.26 2005/06/12 14:09:45 kls Exp $ + * $Id: eitscan.c 1.27 2005/08/07 11:29:54 kls Exp $   */  #include "eitscan.h" @@ -127,7 +127,7 @@ void cEITScanner::Activity(void)  void cEITScanner::Process(void)  { -  if (Setup.EPGScanTimeout && Channels.MaxNumber() > 1) { +  if ((Setup.EPGScanTimeout || !lastActivity) && Channels.MaxNumber() > 1) { // !lastActivity means a scan was forced       time_t now = time(NULL);       if (now - lastScan > ScanTimeout && now - lastActivity > ActivityTimeout) {          if (Channels.Lock(false, 10)) { @@ -150,8 +150,9 @@ void cEITScanner::Process(void)                           if (!Channel->Ca() || Channel->Ca() == Device->DeviceNumber() + 1 || Channel->Ca() >= 0x0100) {                              if (Device->ProvidesTransponder(Channel)) {                                 if (!Device->Receiving()) { -                                  if (Device != cDevice::ActualDevice() || (Device->ProvidesTransponderExclusively(Channel) && Setup.EPGScanTimeout && now - lastActivity > Setup.EPGScanTimeout * 3600)) { -                                     if (Device == cDevice::ActualDevice() && !currentChannel) { +                                  bool IsPrimaryDeviceReplaying = Device == cDevice::PrimaryDevice() && Device->Replaying(); +                                  if (Device != cDevice::ActualDevice() || (Device->ProvidesTransponderExclusively(Channel) && (IsPrimaryDeviceReplaying || now - lastActivity > Setup.EPGScanTimeout * 3600))) { +                                     if (!IsPrimaryDeviceReplaying && Device == cDevice::ActualDevice() && !currentChannel) {                                          if (cTransferControl::ReceiverDevice())                                             cDevice::PrimaryDevice()->StopReplay(); // stop transfer mode                                          currentChannel = Device->CurrentChannel(); | 
