summaryrefslogtreecommitdiff
path: root/dvbdevice.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2012-03-02 10:19:00 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2012-03-02 10:19:00 +0100
commit28bc34b245ffdf0c205f0c5f2624e5c7d94d3c54 (patch)
tree94ac74945d31647fb7087e9d36e30d8d74cb40ec /dvbdevice.c
parenta188928e6ea462e45da7c363a3098065c4691953 (diff)
downloadvdr-28bc34b245ffdf0c205f0c5f2624e5c7d94d3c54.tar.gz
vdr-28bc34b245ffdf0c205f0c5f2624e5c7d94d3c54.tar.bz2
Revised priority handling to allow receivers with a priority that is lower than that of live viewing
Diffstat (limited to 'dvbdevice.c')
-rw-r--r--dvbdevice.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/dvbdevice.c b/dvbdevice.c
index ac505f00..1987223e 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 2.64 2012/02/25 12:10:12 kls Exp $
+ * $Id: dvbdevice.c 2.65 2012/02/29 12:23:43 kls Exp $
*/
#include "dvbdevice.h"
@@ -420,7 +420,7 @@ bool cDvbTuner::BondingOk(const cChannel *Channel, bool ConsiderOccupied) const
if (cDvbTuner *t = bondedTuner) {
cString BondingParams = GetBondingParams(Channel);
do {
- if (t->device->Receiving() || t->tunerStatus != tsIdle && (t->device == cDevice::ActualDevice() || ConsiderOccupied && t->device->Occupied())) {
+ if (t->device->Receiving() || ConsiderOccupied && t->device->Occupied()) {
if (strcmp(BondingParams, t->GetBondingParams()) != 0)
return false;
}
@@ -1437,14 +1437,14 @@ bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const
bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *NeedsDetachReceivers) const
{
bool result = false;
- bool hasPriority = Priority < 0 || Priority > this->Priority();
+ bool hasPriority = Priority == IDLEPRIORITY || Priority > this->Priority();
bool needsDetachReceivers = false;
needsDetachBondedReceivers = false;
if (dvbTuner && ProvidesTransponder(Channel)) {
result = hasPriority;
if (Priority >= 0) {
- if (Receiving(true)) {
+ if (Receiving()) {
if (dvbTuner->IsTunedTo(Channel)) {
if (Channel->Vpid() && !HasPid(Channel->Vpid()) || Channel->Apid(0) && !HasPid(Channel->Apid(0))) {
if (CamSlot() && Channel->Ca() >= CA_ENCRYPTED_MIN) {
@@ -1460,7 +1460,7 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne
result = true;
}
else
- needsDetachReceivers = Receiving(true);
+ needsDetachReceivers = Receiving();
}
if (result) {
if (!BondingOk(Channel)) {
@@ -1472,7 +1472,7 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne
}
}
needsDetachBondedReceivers = true;
- needsDetachReceivers = Receiving(true);
+ needsDetachReceivers = Receiving();
}
}
}