-#use this class to synchronize all ci to/from user communications
-class CiWait(Screen):
- def cancel(self):
- #stop pending requests
- self.Timer.stop()
- 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()
-
- 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.Timer = eTimer()
- self.Timer.timeout.get().append(self.TimerCheck)
-
- if query == 0: #reset
- self.Timer.start(1000) #block 1 second
- print "reset"
- eDVBCI_UI.getInstance().setReset(0)
- if query == 1: #init
- self.Timer.start(1000) #block 1 second
- print "init"
- if query == 2: #mmi-open
- print "mmi open"
- if query == 3: #mmi-answer
- print "mmi answer"
-
-
-class CiEntryList(HTMLComponent, GUIComponent):
- def __init__(self, list):
- GUIComponent.__init__(self)
- self.l = eListboxPythonConfigContent()
- self.l.setList(list)
- self.l.setSeperation(100)
- self.list = list
-
- def toggle(self):
- selection = self.getCurrent()
- selection[1].toggle()
- self.invalidateCurrent()
-
- def handleKey(self, key):
- #not every element got an .handleKey
- try:
- selection = self.getCurrent()
- selection[1].handleKey(key)
- self.invalidateCurrent()
- except:
- pass
-
- def getCurrent(self):
- return self.l.getCurrentSelection()
-
- def getCurrentIndex(self):
- return self.l.getCurrentSelectionIndex()
-
- def invalidateCurrent(self):
- self.l.invalidateEntry(self.l.getCurrentSelectionIndex())
-
- def GUIcreate(self, parent):
- self.instance = eListbox(parent)
- self.instance.setContent(self.l)
-
- def GUIdelete(self):
- self.instance.setContent(None)
- self.instance = None
-