fix "in timer" icon for subservice recordings
[enigma2.git] / RecordTimer.py
index 1c707c362ca897f64984764a8c29a309c7eb0577..6ae4d719136c229612008eb84b5c23ebe597b856 100644 (file)
@@ -1,9 +1,8 @@
 import time
-import codecs
 #from time import datetime
 from Tools import Directories, Notifications
 
-from Components.config import config, ConfigYesNo
+from Components.config import config
 import timer
 import xml.dom.minidom
 
@@ -513,13 +512,41 @@ class RecordTimer(timer.Timer):
                self.addTimerEntry(entry)
                
        def isInTimer(self, eventid, begin, duration, service):
+               print "isInTimer"
                time_match = 0
                chktime = None
                chktimecmp = None
                chktimecmp_end = None
                end = begin + duration
                for x in self.timer_list:
-                       if str(x.service_ref) == str(service):
+                       check = x.service_ref.ref.toCompareString() == str(service)
+                       if not check:
+                               sref = x.service_ref.ref
+                               parent_sid = sref.getUnsignedData(5)
+                               parent_tsid = sref.getUnsignedData(6)
+                               if parent_sid and parent_tsid: # check for subservice
+                                       sid = sref.getUnsignedData(1)
+                                       tsid = sref.getUnsignedData(2)
+                                       sref.setUnsignedData(1, parent_sid)
+                                       sref.setUnsignedData(2, parent_tsid)
+                                       sref.setUnsignedData(5, 0)
+                                       sref.setUnsignedData(6, 0)
+                                       check = x.service_ref.ref.toCompareString() == str(service)
+                                       num = 0
+                                       if check:
+                                               check = False
+                                               event = eEPGCache.getInstance().lookupEventId(sref, eventid)
+                                               num = event and event.getNumOfLinkageServices() or 0
+                                       sref.setUnsignedData(1, sid)
+                                       sref.setUnsignedData(2, tsid)
+                                       sref.setUnsignedData(5, parent_sid)
+                                       sref.setUnsignedData(6, parent_tsid)
+                                       for cnt in range(num):
+                                               subservice = event.getLinkageService(sref, cnt)
+                                               if sref.toCompareString() == subservice.toCompareString():
+                                                       check = True
+                                                       break
+                       if check:
                                #if x.eit is not None and x.repeated == 0:
                                #       if x.eit == eventid:
                                #               return duration