X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/3af66122574386a2856e83ba9c5d73d27a6f3710..949a07352f59a32a5ae00f30650a6d067ef59b77:/components.py diff --git a/components.py b/components.py index abf25f20..af0fbffa 100644 --- a/components.py +++ b/components.py @@ -312,12 +312,25 @@ class ServiceScan: Running = 2 Done = 3 Error = 4 + + Errors = { + 1: "error while scanning", + 2: "no resource manager", + 3: "no channel list" + } + def scanStatusChanged(self): if self.state == self.Running: self.progressbar.setValue(self.scan.getProgress()) if self.scan.isDone(): - self.state = self.Done + errcode = self.scan.getError() + + if errcode == 0: + self.state = self.Done + else: + self.state = self.Error + self.errorcode = errcode else: self.text.setText("scan in progress - %d %% done!\n%d services found!" % (self.scan.getProgress(), self.scan.getNumServices())) @@ -325,7 +338,7 @@ class ServiceScan: self.text.setText("scan done!") if self.state == self.Error: - self.text.setText("ERROR - failed to scan!") + self.text.setText("ERROR - failed to scan (%s)!" % (self.Errors[self.errorcode]) ) def __init__(self, progressbar, text): self.progressbar = progressbar @@ -336,10 +349,10 @@ class ServiceScan: def execBegin(self): self.scan.statusChanged.get().append(self.scanStatusChanged) + self.state = self.Running if self.scan.start(): self.state = self.Error - else: - self.state = self.Running + self.scanStatusChanged() def execEnd(self): @@ -348,7 +361,8 @@ class ServiceScan: print "*** warning *** scan was not finished!" def isDone(self): - return self.state == self.Done + print "state is %d " % (self.state) + return self.state == self.Done or self.state == self.Error class ActionMap: def __init__(self, contexts = [ ], actions = { }, prio=0): @@ -406,12 +420,12 @@ class EventInfo(PerServiceDisplay): def __init__(self, navcore, now_or_next): # listen to evUpdatedEventInfo and evStopService # note that evStopService will be called once to establish a known state + self.now_or_next = now_or_next PerServiceDisplay.__init__(self, navcore, { pNavigation.evUpdatedEventInfo: self.ourEvent, pNavigation.evStopService: self.stopEvent }) - self.now_or_next = now_or_next def ourEvent(self): info = iServiceInformationPtr() @@ -428,7 +442,8 @@ class EventInfo(PerServiceDisplay): print "new event info in EventInfo! yeah!" def stopEvent(self): - self.setText("waiting for event data..."); + self.setText( + ("waiting for event data...", "", "--:--", "--:--")[self.now_or_next]); class ServiceName(PerServiceDisplay): def __init__(self, navcore):