aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2009-07-26 10:46:27 +0200
committerghost <andreas.monzner@multimedia-labs.de>2009-07-26 10:46:27 +0200
commit31599fec5555e06ce7c3405d05347f915f8825ed (patch)
tree5854c9386f8cf7b730053dff5ddff087bb56b65b /lib/dvb
parent22a96623971e3634e7030b110f57315c21214a1d (diff)
downloadenigma2-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.cpp17
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;