X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fdvb%2Fdb.cpp;h=38be6359cabfd4624d6d4e906b63c12d4f210335;hp=109d6a645d6b989ae0bdcbecc66648d25b975ae7;hb=0cb206d2c07cb9e4130e13234e3fd59b127421a8;hpb=79d76e9931fa54bb325cafdbf52bc9e17107b391 diff --git a/lib/dvb/db.cpp b/lib/dvb/db.cpp index 109d6a6..38be635 100644 --- a/lib/dvb/db.cpp +++ b/lib/dvb/db.cpp @@ -181,8 +181,23 @@ int eDVBService::checkFilter(const eServiceReferenceDVB &ref, const eDVBChannelQ res = m_provider_name == query.m_string; break; case eDVBChannelQuery::tType: - res = ref.getServiceType() == query.m_int; + { + int service_type = ref.getServiceType(); + if (query.m_int == 1) // TV Service + { + // Hack for dish network + int onid = ref.getOriginalNetworkID().get(); + if (onid >= 0x1001 && onid <= 0x100b) + { + static int dish_tv_types[] = { 128, 133, 137, 140, 144, 145, 150, 154, 160, 163, 164, 165, 166, 167, 168, 173, 174 }; + static size_t dish_tv_num_types = sizeof(dish_tv_types) / sizeof(int); + if (std::binary_search(dish_tv_types, dish_tv_types + dish_tv_num_types, service_type)) + return true; + } + } + res = service_type == query.m_int; break; + } case eDVBChannelQuery::tBouquet: res = 0; break;