diff options
| author | ghost <andreas.monzner@multimedia-labs.de> | 2009-07-26 10:46:27 +0200 |
|---|---|---|
| committer | ghost <andreas.monzner@multimedia-labs.de> | 2009-07-26 10:46:27 +0200 |
| commit | 31599fec5555e06ce7c3405d05347f915f8825ed (patch) | |
| tree | 5854c9386f8cf7b730053dff5ddff087bb56b65b /lib/dvb | |
| parent | 22a96623971e3634e7030b110f57315c21214a1d (diff) | |
| download | enigma2-31599fec5555e06ce7c3405d05347f915f8825ed.tar.gz enigma2-31599fec5555e06ce7c3405d05347f915f8825ed.zip | |
db.cpp: add hack for dish network tv service types
Diffstat (limited to 'lib/dvb')
| -rw-r--r-- | lib/dvb/db.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/dvb/db.cpp b/lib/dvb/db.cpp index 109d6a64..38be6359 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; |
