projects
/
vuplus_dvbapp
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
23d87e8
)
take care of subservices
author
ghost
<andreas.monzner@multimedia-labs.de>
Tue, 3 Mar 2009 10:50:53 +0000
(11:50 +0100)
committer
ghost
<andreas.monzner@multimedia-labs.de>
Tue, 3 Mar 2009 10:50:53 +0000
(11:50 +0100)
lib/dvb_ci/dvbci.cpp
patch
|
blob
|
history
diff --git
a/lib/dvb_ci/dvbci.cpp
b/lib/dvb_ci/dvbci.cpp
index
c34ea0c
..
a68edea
100644
(file)
--- 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;
}
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())
{
}
if (!useThis && !ci_it->possible_providers.empty())
{
@@
-354,6
+368,7
@@
void eDVBCIInterfaces::recheckPMTHandlers()
}
if (!useThis && !ci_it->possible_caids.empty())
{
}
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);
for (CAID_LIST::iterator ca(caids.begin()); ca != caids.end(); ++ca)
{
caidSet::iterator it = ci_it->possible_caids.find(*ca);