aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/dvb/db.cpp2
-rw-r--r--lib/python/Screens/ChannelSelection.py2
-rw-r--r--lib/service/iservice.h15
3 files changed, 16 insertions, 3 deletions
diff --git a/lib/dvb/db.cpp b/lib/dvb/db.cpp
index 0b1d4b54..1f38d152 100644
--- a/lib/dvb/db.cpp
+++ b/lib/dvb/db.cpp
@@ -194,7 +194,7 @@ int eDVBService::checkFilter(const eServiceReferenceDVB &ref, const eDVBChannelQ
res = 0;
break;
case eDVBChannelQuery::tSatellitePosition:
- res = (ref.getDVBNamespace().get() >> 16) == query.m_int;
+ res = ((unsigned int)ref.getDVBNamespace().get())>>16 == query.m_int;
break;
case eDVBChannelQuery::tChannelID:
{
diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py
index 7178ac68..9e29839a 100644
--- a/lib/python/Screens/ChannelSelection.py
+++ b/lib/python/Screens/ChannelSelection.py
@@ -692,7 +692,7 @@ class ChannelSelectionBase(Screen):
service = servicelist.getNext()
if not service.valid(): #check if end of list
break
- orbpos = service.getData(4) >> 16
+ orbpos = service.getUnsignedData(4) >> 16
if service.getPath().find("FROM PROVIDER") != -1:
service_name = _("Providers")
else:
diff --git a/lib/service/iservice.h b/lib/service/iservice.h
index fb56175d..3a0e32cd 100644
--- a/lib/service/iservice.h
+++ b/lib/service/iservice.h
@@ -51,13 +51,26 @@ public:
std::string getPath() { return path; }
void setPath( const std::string &n ) { path=n; }
- unsigned int getData(unsigned int num) const
+ unsigned int getUnsignedData(unsigned int num) const
{
if ( num < sizeof(data)/sizeof(int) )
return data[num];
return 0;
}
+ int getData(unsigned int num) const
+ {
+ if ( num < sizeof(data)/sizeof(int) )
+ return data[num];
+ return 0;
+ }
+
+ void setUnsignedData(unsigned int num, unsigned int val)
+ {
+ if ( num < sizeof(data)/sizeof(int) )
+ data[num] = val;
+ }
+
void setData(unsigned int num, int val)
{
if ( num < sizeof(data)/sizeof(int) )