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()))
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
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):
ePtr<iDVBChannel> channel;
if (mgr->allocateRawChannel(channel))
+ {
eDebug("scan: allocating raw channel failed!");
+ return -1;
+ }
std::list<ePtr<iDVBFrontendParameters> > list;
m_scan = new eDVBScan(channel);
m_scan->connectEvent(slot(*this, &eComponentScan::scanEvent), m_scan_event_connection);
m_scan->start(list);
-
+
return 0;
}
{
return m_done;
}
+
+int eComponentScan::getError()
+{
+ return m_failed;
+}
/* get number of services */
int getNumServices();
- /* true when done. */
+ /* true when done or error */
int isDone();
+ int getError();
+
int start();
};
if self["scan"].isDone():
self.close()
+ def cancel(self):
+ print "cancel not yet implemented ;)"
+
def __init__(self, session):
Screen.__init__(self, session)
self["scan_state"] = Label("scan state")
self["scan"] = ServiceScan(self["scan_progress"], self["scan_state"])
- self["okbutton"] = Button("ok", [self.ok])
- self["okbutton"].disable()
+ self["actions"] = ActionMap(["OkCancelActions"],
+ {
+ "ok": self.ok,
+ "cancel": self.cancel
+ })
+
<screen name="serviceScan" position="150,100" size="300,200" title="Service Scan">
<widget name="scan_progress" position="10,10" size="280,50" />
<widget name="scan_state" position="10,60" size="280,30" />
- <widget name="okbutton" position="10,100" size="280,40" />
</screen>
</skin>""")