aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFraxinas <andreas.frisch@multimedia-labs.de>2009-03-03 11:52:30 +0100
committerFraxinas <andreas.frisch@multimedia-labs.de>2009-03-03 11:52:30 +0100
commitf8399204b2ce53dfd2c394f9d67b204356f2d40a (patch)
tree603e8081b03a834bcfd6094b8bd860f137b9d1b7
parent1354d745469c0595f4c379edf543d5a613663e03 (diff)
parent8aefeab76e692a2a0edf057ec6ad2b743375f4dd (diff)
downloadenigma2-f8399204b2ce53dfd2c394f9d67b204356f2d40a.tar.gz
enigma2-f8399204b2ce53dfd2c394f9d67b204356f2d40a.zip
Merge branch 'master' of fraxinas@git.opendreambox.org:/git/enigma2
-rw-r--r--lib/dvb_ci/dvbci.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/dvb_ci/dvbci.cpp b/lib/dvb_ci/dvbci.cpp
index c34ea0c0..a68edea8 100644
--- a/lib/dvb_ci/dvbci.cpp
+++ b/lib/dvb_ci/dvbci.cpp
@@ -332,6 +332,20 @@ void eDVBCIInterfaces::recheckPMTHandlers()
eDebug("'%s' is in service list of slot %d... so use it", ref.toString().c_str(), ci_it->getSlotID());
useThis = true;
}
+ else // check parent
+ {
+ eServiceReferenceDVB parent_ref = ref.getParentServiceReference();
+ if (parent_ref)
+ {
+ it = ci_it->possible_services.find(ref);
+ if (it != ci_it->possible_services.end())
+ {
+ eDebug("parent '%s' of '%s' is in service list of slot %d... so use it",
+ parent_ref.toString().c_str(), ref.toString().c_str(), ci_it->getSlotID());
+ useThis = true;
+ }
+ }
+ }
}
if (!useThis && !ci_it->possible_providers.empty())
{
@@ -354,6 +368,7 @@ void eDVBCIInterfaces::recheckPMTHandlers()
}
if (!useThis && !ci_it->possible_caids.empty())
{
+ mask |= 4;
for (CAID_LIST::iterator ca(caids.begin()); ca != caids.end(); ++ca)
{
caidSet::iterator it = ci_it->possible_caids.find(*ca);