1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Fixed recording overlapping timers on the same channel

This commit is contained in:
Klaus Schmidinger 2002-12-13 15:35:00 +01:00
parent d7d4799236
commit f784d52a39
3 changed files with 10 additions and 10 deletions

View File

@ -468,6 +468,8 @@ Gerhard Steiner <steiner@mail.austria.com>
Jaakko Hyvätti <jaakko@hyvatti.iki.fi> Jaakko Hyvätti <jaakko@hyvatti.iki.fi>
for translating OSD texts to the Finnish language for translating OSD texts to the Finnish language
for adding a check if there is a connection to the keyboard 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 <dennis.noordsij@wiral.com> Dennis Noordsij <dennis.noordsij@wiral.com>
for reporting a small glitch when switching channels for reporting a small glitch when switching channels

View File

@ -1881,3 +1881,6 @@ Video Disk Recorder Revision History
CXX ?= g++ CXX ?= g++
CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual 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).

View File

@ -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: 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" #include "dvbdevice.h"
@ -537,31 +537,26 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne
bool needsDetachReceivers = true; bool needsDetachReceivers = true;
if (ProvidesSource(Channel->Source()) && ProvidesCa(Channel->Ca())) { if (ProvidesSource(Channel->Source()) && ProvidesCa(Channel->Ca())) {
#ifdef DO_MULTIPLE_RECORDINGS result = hasPriority;
if (Receiving()) { if (Receiving()) {
if (dvbTuner->IsTunedTo(Channel)) { if (dvbTuner->IsTunedTo(Channel)) {
needsDetachReceivers = false; needsDetachReceivers = false;
if (!HasPid(Channel->Vpid())) { if (!HasPid(Channel->Vpid())) {
if (Channel->Ca() > CACONFBASE) { #ifdef DO_MULTIPLE_RECORDINGS
if (Channel->Ca() > CACONFBASE)
needsDetachReceivers = true; needsDetachReceivers = true;
result = hasPriority;
}
else if (!IsPrimaryDevice()) else if (!IsPrimaryDevice())
result = true; result = true;
#ifdef DO_REC_AND_PLAY_ON_PRIMARY_DEVICE #ifdef DO_REC_AND_PLAY_ON_PRIMARY_DEVICE
else else
result = Priority >= Setup.PrimaryLimit; result = Priority >= Setup.PrimaryLimit;
#endif
#endif #endif
} }
else else
result = !IsPrimaryDevice() || Priority >= Setup.PrimaryLimit; result = !IsPrimaryDevice() || Priority >= Setup.PrimaryLimit;
} }
else
result = hasPriority;
} }
else
#endif
result = hasPriority;
} }
if (NeedsDetachReceivers) if (NeedsDetachReceivers)
*NeedsDetachReceivers = needsDetachReceivers; *NeedsDetachReceivers = needsDetachReceivers;