mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Modified cEITScanner::Process() to use the primary device if replaying, and do a forced scan even if timeout is 0
This commit is contained in:
parent
da0030deff
commit
7d54c997ab
@ -1410,3 +1410,7 @@ Matthias Lenk <matthias.lenk@amd.com>
|
|||||||
|
|
||||||
Frank Krömmelbein <kroemmelbein@gmx.de>
|
Frank Krömmelbein <kroemmelbein@gmx.de>
|
||||||
for adding missing storing of the MenuScrollPage parameter
|
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
|
||||||
|
4
HISTORY
4
HISTORY
@ -3663,3 +3663,7 @@ Video Disk Recorder Revision History
|
|||||||
- Added missing storing of the MenuScrollPage parameter (thanks to Frank Krömmelbein).
|
- 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
|
- Added cRemux::SetTimeouts() for better use of cRemux in a single thread (thanks
|
||||||
to Udo Richter for reporting a problem with this).
|
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
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* 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"
|
#include "eitscan.h"
|
||||||
@ -127,7 +127,7 @@ void cEITScanner::Activity(void)
|
|||||||
|
|
||||||
void cEITScanner::Process(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);
|
time_t now = time(NULL);
|
||||||
if (now - lastScan > ScanTimeout && now - lastActivity > ActivityTimeout) {
|
if (now - lastScan > ScanTimeout && now - lastActivity > ActivityTimeout) {
|
||||||
if (Channels.Lock(false, 10)) {
|
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 (!Channel->Ca() || Channel->Ca() == Device->DeviceNumber() + 1 || Channel->Ca() >= 0x0100) {
|
||||||
if (Device->ProvidesTransponder(Channel)) {
|
if (Device->ProvidesTransponder(Channel)) {
|
||||||
if (!Device->Receiving()) {
|
if (!Device->Receiving()) {
|
||||||
if (Device != cDevice::ActualDevice() || (Device->ProvidesTransponderExclusively(Channel) && Setup.EPGScanTimeout && now - lastActivity > Setup.EPGScanTimeout * 3600)) {
|
bool IsPrimaryDeviceReplaying = Device == cDevice::PrimaryDevice() && Device->Replaying();
|
||||||
if (Device == cDevice::ActualDevice() && !currentChannel) {
|
if (Device != cDevice::ActualDevice() || (Device->ProvidesTransponderExclusively(Channel) && (IsPrimaryDeviceReplaying || now - lastActivity > Setup.EPGScanTimeout * 3600))) {
|
||||||
|
if (!IsPrimaryDeviceReplaying && Device == cDevice::ActualDevice() && !currentChannel) {
|
||||||
if (cTransferControl::ReceiverDevice())
|
if (cTransferControl::ReceiverDevice())
|
||||||
cDevice::PrimaryDevice()->StopReplay(); // stop transfer mode
|
cDevice::PrimaryDevice()->StopReplay(); // stop transfer mode
|
||||||
currentChannel = Device->CurrentChannel();
|
currentChannel = Device->CurrentChannel();
|
||||||
|
Loading…
Reference in New Issue
Block a user