From abf8a62fe9a056c316cff6a32df882e2b7d3ae19 Mon Sep 17 00:00:00 2001 From: Frank Schmirler Date: Fri, 10 Dec 2010 18:06:39 +0100 Subject: [PATCH] make sure that a client doesn't interrupt replaying on server's FF card http://www.vdr-portal.de/board/thread.php?postid=948311 (reported by wtor) --- CONTRIBUTORS | 3 +++ HISTORY | 2 ++ server/connection.c | 3 +++ 3 files changed, 8 insertions(+) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index f6d286d..af23429 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -177,3 +177,6 @@ Gavin Hamill Michal Novotny for reporting that switching away live TV fails when "always suspended" + +wtor + for reporting that a client may interrupt replaying on FF cards diff --git a/HISTORY b/HISTORY index 437f56f..5884504 100644 --- a/HISTORY +++ b/HISTORY @@ -1,6 +1,8 @@ VDR Plugin 'streamdev' Revision History --------------------------------------- +- make sure that a client doesn't interrupt replaying on server's FF card + (reported by wtor) - switching away live TV failed even when "always suspended" (reported by Michal Novotny) - fixed regression: no receiver created for ES/PS/PES (reported by Gavin diff --git a/server/connection.c b/server/connection.c index 944b2f5..7b2b9db 100644 --- a/server/connection.c +++ b/server/connection.c @@ -295,6 +295,7 @@ cDevice *cServerConnection::GetDevice(const cChannel *Channel, int Priority) cDevice *device = cDevice::GetDevice(Channel, Priority, false); if (device && device == cDevice::ActualDevice() + && (!device->IsPrimaryDevice() || !device->Replaying()) && !cSuspendCtl::IsActive() && current != NULL && !TRANSPONDER(Channel, current)) { @@ -331,6 +332,7 @@ bool cServerConnection::ProvidesChannel(const cChannel *Channel, int Priority) cDevice *device = CheckDevice(Channel, Priority, false); if (!device || (device == cDevice::ActualDevice() + && (!device->IsPrimaryDevice() || !device->Replaying()) && !cSuspendCtl::IsActive() && StreamdevServerSetup.SuspendMode != smAlways && current != NULL @@ -341,6 +343,7 @@ bool cServerConnection::ProvidesChannel(const cChannel *Channel, int Priority) device = CheckDevice(Channel, Priority, false); Attach(); if (device && device == cDevice::ActualDevice() + && (!device->IsPrimaryDevice() || !device->Replaying()) && !cSuspendCtl::IsActive() && StreamdevServerSetup.SuspendMode != smAlways && current != NULL