From 00170e82752fa54ce8f750d691322187a6fc1541 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 24 Aug 2003 14:49:53 +0200 Subject: [PATCH] Avoiding an unnecessary stop of an ongoing Transfer Mode when starting a recording on the primary device --- HISTORY | 2 ++ dvbdevice.c | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/HISTORY b/HISTORY index e38c2cf1..04859985 100644 --- a/HISTORY +++ b/HISTORY @@ -2327,3 +2327,5 @@ Video Disk Recorder Revision History - Fixed a bug in resetting OSD color palettes (thanks to Torsten Herz). - Fixed starting a recording on the primary device if there is a replay session active (thanks to Javier Marcet for reporting this one). +- Avoiding an unnecessary stop of an ongoing Transfer Mode when starting a + recording on the primary device. diff --git a/dvbdevice.c b/dvbdevice.c index 34d55829..65ae43b6 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.61 2003/08/15 13:03:41 kls Exp $ + * $Id: dvbdevice.c 1.62 2003/08/24 14:49:53 kls Exp $ */ #include "dvbdevice.h" @@ -613,13 +613,12 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne { bool result = false; bool hasPriority = Priority < 0 || Priority > this->Priority(); - bool needsDetachReceivers = true; + bool needsDetachReceivers = false; if (ProvidesSource(Channel->Source()) && ProvidesCa(Channel->Ca())) { result = hasPriority; if (Receiving()) { if (dvbTuner->IsTunedTo(Channel)) { - needsDetachReceivers = false; if (!HasPid(Channel->Vpid())) { #ifdef DO_MULTIPLE_RECORDINGS if (Channel->Ca() > CACONFBASE) @@ -636,6 +635,8 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne else result = !IsPrimaryDevice() || Priority >= Setup.PrimaryLimit; } + else + needsDetachReceivers = true; } } if (NeedsDetachReceivers)