remove non working indication of playable services in servicelist
[enigma2.git] / lib / service / listboxservice.cpp
index e1f1beb07b4d1f8b1363261285daf9bc59b3b208..4e20fcb7f53e70cd4125c036faaf92a59664d180 100644 (file)
@@ -2,6 +2,7 @@
 #include <lib/service/service.h>
 #include <lib/gdi/font.h>
 #include <lib/dvb/epgcache.h>
+#include <lib/dvb/pmt.h>
 
 void eListboxServiceContent::setRoot(const eServiceReference &root)
 {
@@ -152,8 +153,8 @@ void eListboxServiceContent::setElementFont(int element, gFont *font)
 void eListboxServiceContent::sort()
 {
        ePtr<iListableService> lst;
-  if (!m_service_center->list(m_root, lst))
-  {
+       if (!m_service_center->list(m_root, lst))
+       {
                m_list.sort(iListableServiceCompare(lst));
                        /* FIXME: is this really required or can we somehow keep the current entry? */
                cursorHome();
@@ -165,7 +166,7 @@ void eListboxServiceContent::sort()
 DEFINE_REF(eListboxServiceContent);
 
 eListboxServiceContent::eListboxServiceContent()
-       :epgcache(eEPGCache::getInstance()), m_visual_mode(visModeSimple), m_size(0), m_current_marked(false), m_numberoffset(0)
+       :m_visual_mode(visModeSimple), m_size(0), m_current_marked(false), m_numberoffset(0)
 {
        cursorHome();
        eServiceCenter::getInstance(m_service_center);
@@ -334,12 +335,28 @@ 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())
@@ -380,8 +397,7 @@ void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const
                        case celServiceInfo:
                        {
                                ePtr<eServiceEvent> evt;
-                               time_t t=-1;
-                               if ( !epgcache->lookupEventTime(*m_cursor, t, evt) )
+                               if ( !service_info->getEvent(*m_cursor, evt) )
                                        text = '(' + evt->getEventName() + ')';
                                else
                                        continue;