summaryrefslogtreecommitdiff
path: root/device.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2008-02-24 18:00:00 +0100
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2008-02-24 18:00:00 +0100
commit83d7a4b7838a8209c05c53b5e625bf965d3bf585 (patch)
tree95ed1f63a21e849514e1496df495fccc6d971d81 /device.c
parent9279cb21cd311cbb141d506ba9d17c3a057b4d3c (diff)
downloadvdr-patch-lnbsharing-83d7a4b7838a8209c05c53b5e625bf965d3bf585.tar.gz
vdr-patch-lnbsharing-83d7a4b7838a8209c05c53b5e625bf965d3bf585.tar.bz2
Version 1.5.16vdr-1.5.16
- Fixed setting the current subtitle track in Transfer-Mode (reported by Petri Helin, thanks to Reinhard Nissl for pointing out that cDevice::Transferring() doesn't return the right value in the early stage of channel switching). - Updated the Danish OSD texts (thanks to Mogens Elneff). - Updated the Dutch OSD texts (thanks to Carel Willemse). - Fixed various spelling errors and improved PLUGINS.html (thanks to Ville Skyttä). - Updated the Italian OSD texts (thanks to Diego Pierotto). - Fixed the format in cRemote::Put() to use "%016llX" instead of "%016LX" (thanks to Ludwig Nussel for pointing this out). - Revised the fix of calculating the scrollbar height in the skins. The scrollbar handle now always has a height that is at least the width of the scrollbar. - When switching the device that's used for live viewing away from the current transponder in favor of an upcoming recording, an attempt is now made to stay on the current channel by possibly going into 'Transfer Mode'. - The CAM menu now stays open as long as it is automatically updated, even without pressing a remote control key. This is important when updating the CAM firmware from the transponder. - No longer trying to switch to an available channel if the primary device has no valid programme and a menu is open (avoids interference with the CAM in case a CAM menu is open). - Increased the valid range of the "Subtitle offset" setup option to -100...100 (thanks to Rolf Ahrenberg). - Added the backslash ('\') to the list of characters that need to be escaped when executing external commands (thanks to Peter Bieringer for reporting this one).
Diffstat (limited to 'device.c')
-rw-r--r--device.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/device.c b/device.c
index aaa0254..7c82d97 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 1.153 2008/02/16 13:52:11 kls Exp $
+ * $Id: device.c 1.155 2008/02/23 13:09:01 kls Exp $
*/
#include "device.h"
@@ -218,6 +218,7 @@ int cDevice::nextCardIndex = 0;
int cDevice::currentChannel = 1;
cDevice *cDevice::device[MAXDEVICES] = { NULL };
cDevice *cDevice::primaryDevice = NULL;
+cDevice *cDevice::avoidDevice = NULL;
cDevice::cDevice(void)
{
@@ -356,6 +357,8 @@ cDevice *cDevice::GetDevice(int Index)
cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool LiveView)
{
+ cDevice *AvoidDevice = avoidDevice;
+ avoidDevice = NULL;
// Collect the current priorities of all CAM slots that can decrypt the channel:
int NumCamSlots = CamSlots.Count();
int SlotPriority[NumCamSlots];
@@ -385,6 +388,8 @@ cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool LiveView
if (NumUsableSlots && SlotPriority[j] > MAXPRIORITY)
continue; // there is no CAM available in this slot
for (int i = 0; i < numDevices; i++) {
+ if (device[i] == AvoidDevice)
+ continue; // this device shall be temporarily avoided
if (Channel->Ca() && Channel->Ca() <= CA_DVB_MAX && Channel->Ca() != device[i]->CardIndex() + 1)
continue; // a specific card was requested, but not this one
if (NumUsableSlots && !CamSlots.Get(j)->Assign(device[i], true))
@@ -1159,7 +1164,7 @@ bool cDevice::Replaying(void) const
bool cDevice::Transferring(void) const
{
- return dynamic_cast<cTransfer *>(player) != NULL;
+ return ActualDevice() != PrimaryDevice();
}
bool cDevice::AttachPlayer(cPlayer *Player)