From f784d52a3999505204c38d4e14ca5674f8f492e7 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Fri, 13 Dec 2002 15:35:00 +0100 Subject: [PATCH] Fixed recording overlapping timers on the same channel --- CONTRIBUTORS | 2 ++ HISTORY | 3 +++ dvbdevice.c | 15 +++++---------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index e08b23e0..a7ae8f91 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -468,6 +468,8 @@ Gerhard Steiner Jaakko Hyvätti for translating OSD texts to the Finnish language for adding a check if there is a connection to the keyboard + for fixing recording overlapping timers on the same channel in case + DO_REC_AND_PLAY_ON_PRIMARY_DEVICE and/or DO_MULTIPLE_RECORDINGS is not defined Dennis Noordsij for reporting a small glitch when switching channels diff --git a/HISTORY b/HISTORY index eeec39ab..f7e9814e 100644 --- a/HISTORY +++ b/HISTORY @@ -1881,3 +1881,6 @@ Video Disk Recorder Revision History CXX ?= g++ CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual +- Fixed recording overlapping timers on the same channel in case + DO_REC_AND_PLAY_ON_PRIMARY_DEVICE and/or DO_MULTIPLE_RECORDINGS is not defined + (thanks to Jaakko Hyvätti). diff --git a/dvbdevice.c b/dvbdevice.c index a2b4ce97..45b7fbb1 100644 --- a/dvbdevice.c +++ b/dvbdevice.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbdevice.c 1.38 2002/12/07 14:50:46 kls Exp $ + * $Id: dvbdevice.c 1.39 2002/12/13 15:29:50 kls Exp $ */ #include "dvbdevice.h" @@ -537,31 +537,26 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne bool needsDetachReceivers = true; if (ProvidesSource(Channel->Source()) && ProvidesCa(Channel->Ca())) { -#ifdef DO_MULTIPLE_RECORDINGS + result = hasPriority; if (Receiving()) { if (dvbTuner->IsTunedTo(Channel)) { needsDetachReceivers = false; if (!HasPid(Channel->Vpid())) { - if (Channel->Ca() > CACONFBASE) { +#ifdef DO_MULTIPLE_RECORDINGS + if (Channel->Ca() > CACONFBASE) needsDetachReceivers = true; - result = hasPriority; - } else if (!IsPrimaryDevice()) result = true; #ifdef DO_REC_AND_PLAY_ON_PRIMARY_DEVICE else result = Priority >= Setup.PrimaryLimit; +#endif #endif } else result = !IsPrimaryDevice() || Priority >= Setup.PrimaryLimit; } - else - result = hasPriority; } - else -#endif - result = hasPriority; } if (NeedsDetachReceivers) *NeedsDetachReceivers = needsDetachReceivers;