Py_DECREF(sat_pos);
if (sat_name)
Py_DECREF(sat_name);
+ if (sat_flags)
+ Py_DECREF(sat_flags);
}
}
Py_INCREF(Py_True);
if ((unsigned int)sat.orbital_position != orbpos)
remove=false;
}
- else if (orbpos != 0xFFFFFFFF) // do not remove -C or -T transponders when a orbital position is given..
- remove=false;
- if ( remove && chid.dvbnamespace != eNs && chid.dvbnamespace != ch.dvbnamespace )
- remove=false;
+ if ( remove && chid.dvbnamespace != eNs )
+ {
+ if (system == iDVBFrontend::feCable && chid.dvbnamespace.get() == 0xFFFF0000)
+ ;
+ else if (system == iDVBFrontend::feTerrestrial && chid.dvbnamespace.get() == 0xEEEE0000)
+ ;
+ else if ( chid.dvbnamespace != ch.dvbnamespace )
+ remove=false;
+ }
if ( remove && chid.original_network_id != eOnid && chid.original_network_id != ch.original_network_id )
remove=false;
if ( remove && chid.transport_stream_id != eTsid && chid.transport_stream_id != ch.transport_stream_id )
if ((unsigned int)sat.orbital_position != orbpos)
remove=false;
}
- if ( remove && chid.dvbnamespace != eNs && chid.dvbnamespace != ch.dvbnamespace )
- remove=false;
+ if ( remove && chid.dvbnamespace != eNs )
+ {
+ if (system == iDVBFrontend::feCable && chid.dvbnamespace.get() == 0xFFFF0000)
+ ;
+ else if (system == iDVBFrontend::feTerrestrial && chid.dvbnamespace.get() == 0xEEEE0000)
+ ;
+ else if ( chid.dvbnamespace != ch.dvbnamespace )
+ remove=false;
+ }
if ( remove && chid.original_network_id != eOnid && chid.original_network_id != ch.original_network_id )
remove=false;
if ( remove && chid.transport_stream_id != eTsid && chid.transport_stream_id != ch.transport_stream_id )
{
while (m_cursor != m_db->m_services.end())
{
- ref = m_cursor->first;
+ ePtr<eDVBService> service = m_cursor->second;
+ if (service->isHidden())
+ ++m_cursor;
+ else
+ {
+ ref = m_cursor->first;
- int res = (!m_query) || m_cursor->second->checkFilter(ref, *m_query);
+ int res = (!m_query) || service->checkFilter(ref, *m_query);
- ++m_cursor;
+ ++m_cursor;
- if (res)
- return 0;
+ if (res)
+ return 0;
+ }
}
ref.type = eServiceReference::idInvalid;
std::map<eServiceReferenceDVB, ePtr<eDVBService> >::iterator it =
m_db->m_services.find(ref);
- int res = (!m_query) || it == m_db->m_services.end() || it->second->checkFilter(ref, *m_query);
+ int res = (!m_query) || it == m_db->m_services.end() || !it->second->isHidden() && it->second->checkFilter(ref, *m_query);
++m_cursor;
for (std::map<eServiceReferenceDVB, ePtr<eDVBService> >::iterator it(m_db->m_services.begin());
it != m_db->m_services.end(); ++it)
{
- int res = it->second->checkFilter(it->first, *query);
+ int res = !it->second->isHidden() && it->second->checkFilter(it->first, *query);
if (res)
{
unsigned int dvbnamespace = it->first.getDVBNamespace().get()&0xFFFF0000;
for (std::map<eServiceReferenceDVB, ePtr<eDVBService> >::iterator it(m_db->m_services.begin());
it != m_db->m_services.end(); ++it)
{
- int res = it->second->checkFilter(it->first, *query);
+ int res = !it->second->isHidden() && it->second->checkFilter(it->first, *query);
if (res)
{
const char *provider_name = it->second->m_provider_name.length() ?