diff options
| author | Fraxinas <andreas.frisch@multimedia-labs.de> | 2009-03-03 11:52:30 +0100 |
|---|---|---|
| committer | Fraxinas <andreas.frisch@multimedia-labs.de> | 2009-03-03 11:52:30 +0100 |
| commit | f8399204b2ce53dfd2c394f9d67b204356f2d40a (patch) | |
| tree | 603e8081b03a834bcfd6094b8bd860f137b9d1b7 | |
| parent | 1354d745469c0595f4c379edf543d5a613663e03 (diff) | |
| parent | 8aefeab76e692a2a0edf057ec6ad2b743375f4dd (diff) | |
| download | enigma2-f8399204b2ce53dfd2c394f9d67b204356f2d40a.tar.gz enigma2-f8399204b2ce53dfd2c394f9d67b204356f2d40a.zip | |
Merge branch 'master' of fraxinas@git.opendreambox.org:/git/enigma2
| -rw-r--r-- | lib/dvb_ci/dvbci.cpp | 15 |
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); |
