aboutsummaryrefslogtreecommitdiff
path: root/lib/service
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2005-12-03 15:53:37 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2005-12-03 15:53:37 +0000
commit36940d42cf3cc58b40a5a6f5fe86bad50ff48ad7 (patch)
treee0990a34f6c21597f045297b9bc322a0f1308857 /lib/service
parent20fdb2a2af40da98427a702a03a79b1fbec3d7af (diff)
downloadenigma2-36940d42cf3cc58b40a5a6f5fe86bad50ff48ad7.tar.gz
enigma2-36940d42cf3cc58b40a5a6f5fe86bad50ff48ad7.zip
fix marking non playable services in channellist
Diffstat (limited to 'lib/service')
-rw-r--r--lib/service/iservice.h3
-rw-r--r--lib/service/listboxservice.cpp25
-rw-r--r--lib/service/listboxservice.h4
-rw-r--r--lib/service/service.cpp7
4 files changed, 20 insertions, 19 deletions
diff --git a/lib/service/iservice.h b/lib/service/iservice.h
index ab95ef79..232e66f2 100644
--- a/lib/service/iservice.h
+++ b/lib/service/iservice.h
@@ -175,6 +175,8 @@ public:
// doesn't need to be implemented, should return -1 then.
virtual int getLength(const eServiceReference &ref);
virtual SWIG_VOID(RESULT) getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &SWIG_OUTPUT);
+ // returns true when not implemented
+ virtual bool isPlayable(const eServiceReference &ref, const eServiceReference &ignore);
};
TEMPLATE_TYPEDEF(ePtr<iStaticServiceInformation>, iStaticServiceInformationPtr);
@@ -264,7 +266,6 @@ public:
TEMPLATE_TYPEDEF(ePtr<iAudioTrackSelection>, iAudioTrackSelectionPtr);
-
class iPlayableService: public iObject
{
friend class iServiceHandler;
diff --git a/lib/service/listboxservice.cpp b/lib/service/listboxservice.cpp
index 4e20fcb7..035658ee 100644
--- a/lib/service/listboxservice.cpp
+++ b/lib/service/listboxservice.cpp
@@ -335,28 +335,12 @@ void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const
{
painter.clip(eRect(offset, m_itemsize));
- bool tuneable=true;
-
-#if 0
- if (m_res_mgr && cursorValid() && !((m_cursor->flags & eServiceReference::flagDirectory) == eServiceReference::flagDirectory))
- {
- eServiceReferenceDVB &ref = (eServiceReferenceDVB&) *m_cursor;
- eDVBChannelID chid;
- ref.getChannelID(chid);
- tuneable = m_res_mgr->canAllocateChannel(chid);
- }
-#endif
-
if (m_current_marked && selected)
style.setStyle(painter, eWindowStyle::styleListboxMarked);
else if (cursorValid() && isMarked(*m_cursor))
style.setStyle(painter, eWindowStyle::styleListboxMarked);
else
- {
style.setStyle(painter, selected ? eWindowStyle::styleListboxSelected : eWindowStyle::styleListboxNormal);
- if (!tuneable)
- painter.setForegroundColor(gRGB(0xbbbbbb));
- }
painter.clear();
if (cursorValid())
@@ -364,7 +348,10 @@ void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const
/* get service information */
ePtr<iStaticServiceInformation> service_info;
m_service_center->info(*m_cursor, service_info);
-
+
+ if (m_is_playable_ignore.valid() && !service_info->isPlayable(*m_cursor, m_is_playable_ignore))
+ painter.setForegroundColor(gRGB(0xbbbbbb));
+
for (int e = 0; e < celElements; ++e)
{
if (!m_element_font[e])
@@ -447,3 +434,7 @@ void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const
painter.clippop();
}
+void eListboxServiceContent::setIgnoreService( const eServiceReference &service )
+{
+ m_is_playable_ignore=service;
+}
diff --git a/lib/service/listboxservice.h b/lib/service/listboxservice.h
index b1cc249b..a742b061 100644
--- a/lib/service/listboxservice.h
+++ b/lib/service/listboxservice.h
@@ -10,6 +10,8 @@ class eListboxServiceContent: public virtual iListboxContent
DECLARE_REF(eListboxServiceContent);
public:
eListboxServiceContent();
+
+ void setIgnoreService( const eServiceReference &service );
void setRoot(const eServiceReference &ref);
void getCurrent(eServiceReference &ref);
@@ -96,6 +98,8 @@ private:
bool m_current_marked;
int m_numberoffset;
+
+ eServiceReference m_is_playable_ignore;
};
#endif
diff --git a/lib/service/service.cpp b/lib/service/service.cpp
index a7f6e529..c043a583 100644
--- a/lib/service/service.cpp
+++ b/lib/service/service.cpp
@@ -144,8 +144,13 @@ int iStaticServiceInformation::getLength(const eServiceReference &ref)
return -1;
}
+bool iStaticServiceInformation::isPlayable(const eServiceReference &ref, const eServiceReference &ignore)
+{
+ return true;
+}
+
RESULT iServiceInformation::getEvent(ePtr<eServiceEvent> &evt, int m_nownext)
-{
+{
evt = 0;
return -1;
}