-#use this class to synchronize all ci to/from user communications
-class CiWait(Screen):
- def cancel(self):
- #stop pending requests
- self.Timer.stop()
-
- if self.lastQuery == 2:
- eDVBCI_UI.getInstance().stopMMI(self.slot)
-
- self.close()
-
- def TimerCheck(self):
- #special cases to prevent to fast resets/inits
- if self.lastQuery == 0:
- self.cancel()
- elif self.lastQuery == 1:
- self.cancel()
- else:
- if eDVBCI_UI.getInstance().getState(self.slot) != 2: #module removed
- self.cancel()
-
- def __init__(self, session, slot, query):
- Screen.__init__(self, session)
-
- self["message"] = Label(_("waiting for CI..."))
-
- self["actions"] = ActionMap(["OkCancelActions"],
- {
- "cancel": self.cancel
- })
-
- self.lastQuery = query
- self.slot = slot
-
- self.Timer = eTimer()
- self.Timer.timeout.get().append(self.TimerCheck)
- self.Timer.start(1000) #check and block 1 second
-
- if query == 0: #reset
- print "reset"
- eDVBCI_UI.getInstance().setReset(slot)
- if query == 1: #init
- print "init"
- eDVBCI_UI.getInstance().initialize(slot)
- if query == 2: #mmi-open
- print "mmi open"
- eDVBCI_UI.getInstance().startMMI(slot)
- if query == 3: #mmi-answer
- print "mmi answer"
- eDVBCI_UI.getInstance().answerMMI(slot, 0, 0)
-
-
-class CiEntryList(HTMLComponent, GUIComponent):