diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2005-12-03 15:53:37 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2005-12-03 15:53:37 +0000 |
| commit | 36940d42cf3cc58b40a5a6f5fe86bad50ff48ad7 (patch) | |
| tree | e0990a34f6c21597f045297b9bc322a0f1308857 /lib/service | |
| parent | 20fdb2a2af40da98427a702a03a79b1fbec3d7af (diff) | |
| download | enigma2-36940d42cf3cc58b40a5a6f5fe86bad50ff48ad7.tar.gz enigma2-36940d42cf3cc58b40a5a6f5fe86bad50ff48ad7.zip | |
fix marking non playable services in channellist
Diffstat (limited to 'lib/service')
| -rw-r--r-- | lib/service/iservice.h | 3 | ||||
| -rw-r--r-- | lib/service/listboxservice.cpp | 25 | ||||
| -rw-r--r-- | lib/service/listboxservice.h | 4 | ||||
| -rw-r--r-- | lib/service/service.cpp | 7 |
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; } |
