From 1369239b53ee23fa1f790c67649facb4f8e547ff Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 12 Jun 2004 15:07:29 +0200 Subject: [PATCH] Fixed switching channels while an encrypted channel is being recorded --- CONTRIBUTORS | 4 ++++ HISTORY | 3 +++ dvbdevice.c | 4 ++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 63f1aac3..fade122d 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1032,3 +1032,7 @@ Jouni Karvo Olaf Henkel for reporting a problem with long event texts in the "Classic VDR" skin + +Martin Dauskardt + for reporting a problem with switching channels while an encrypted channel is being + recorded diff --git a/HISTORY b/HISTORY index 2a5379b5..45b726dc 100644 --- a/HISTORY +++ b/HISTORY @@ -2908,3 +2908,6 @@ Video Disk Recorder Revision History - Some improvements in cOsd creation (thanks to some suggestions by Jouni Karvo). - Fixed calculating the OSD width and height (thanks to Olaf Henkel for reporting a problem with long event texts in the "Classic VDR" skin). +- Fixed switching channels while an encrypted channel is being recorded, because the + channel was switched if the new channel was on the same transponder and was + a radio channel (thanks to Martin Dauskardt for reporting this one). diff --git a/dvbdevice.c b/dvbdevice.c index 2d23d27c..fae2408a 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.90 2004/06/12 14:42:19 kls Exp $ + * $Id: dvbdevice.c 1.91 2004/06/12 14:50:23 kls Exp $ */ #include "dvbdevice.h" @@ -682,7 +682,7 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne result = hasPriority; if (Priority >= 0 && Receiving(true)) { if (dvbTuner->IsTunedTo(Channel)) { - if (!HasPid(Channel->Vpid())) { + if (Channel->Vpid() && !HasPid(Channel->Vpid()) || Channel->Apid1() && !HasPid(Channel->Apid1())) { #ifdef DO_MULTIPLE_RECORDINGS if (Channel->Ca() > CACONFBASE) needsDetachReceivers = !ciHandler // only LL-firmware can do non-live CA channels