summaryrefslogtreecommitdiff
path: root/device.c
diff options
context:
space:
mode:
Diffstat (limited to 'device.c')
-rw-r--r--device.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/device.c b/device.c
index ba098d88..8664db9a 100644
--- a/device.c
+++ b/device.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: device.c 2.42 2011/08/26 12:56:00 kls Exp $
+ * $Id: device.c 2.43 2011/10/16 14:01:30 kls Exp $
*/
#include "device.h"
@@ -95,6 +95,8 @@ cDevice::cDevice(void)
camSlot = NULL;
startScrambleDetection = 0;
+ occupiedTimeout = 0;
+
player = NULL;
isPlayingVideo = false;
ClrAvailableTracks();
@@ -645,7 +647,7 @@ bool cDevice::IsTunedToTransponder(const cChannel *Channel)
bool cDevice::MaySwitchTransponder(void)
{
- return !Receiving(true) && !(pidHandles[ptAudio].pid || pidHandles[ptVideo].pid || pidHandles[ptDolby].pid);
+ return time(NULL) > occupiedTimeout && !Receiving(true) && !(pidHandles[ptAudio].pid || pidHandles[ptVideo].pid || pidHandles[ptDolby].pid);
}
bool cDevice::SwitchChannel(const cChannel *Channel, bool LiveView)
@@ -786,6 +788,18 @@ void cDevice::ForceTransferMode(void)
}
}
+int cDevice::Occupied(void) const
+{
+ int Seconds = occupiedTimeout - time(NULL);
+ return Seconds > 0 ? Seconds : 0;
+}
+
+void cDevice::SetOccupied(int Seconds)
+{
+ if (Seconds >= 0)
+ occupiedTimeout = time(NULL) + min(Seconds, MAXOCCUPIEDTIMEOUT);
+}
+
bool cDevice::SetChannelDevice(const cChannel *Channel, bool LiveView)
{
return false;