slotdata[i].mmiScreen=NULL;
slotdata[i].mmiScreenReady=0;
slotdata[i].mmiTuplePos=0;
- slotdata[i].state=0;
+ slotdata[i].state=-1;
}
}
void eDVBCI_UI::setState(int slot, int newState)
{
if (slot < MAX_SLOTS)
+ {
slotdata[slot].state = newState;
+ /*emit*/ ciStateChanged(slot);
+ }
}
std::string eDVBCI_UI::getAppName(int slot)
return false;
}
+int eDVBCI_UI::mmiScreenClose(int slot, int timeout)
+{
+ if (slot >= MAX_SLOTS)
+ return 0;
+
+ slot_ui_data &data = slotdata[slot];
+
+ data.mmiScreenReady = 0;
+
+ if (data.mmiScreen)
+ Py_DECREF(data.mmiScreen);
+ data.mmiScreen = PyList_New(1);
+
+ PyObject *tuple = PyTuple_New(2);
+ PyTuple_SET_ITEM(tuple, 0, PyString_FromString("CLOSE"));
+ PyTuple_SET_ITEM(tuple, 1, PyLong_FromLong(timeout));
+ PyList_SET_ITEM(data.mmiScreen, 0, tuple);
+ data.mmiScreenReady = 1;
+ /*emit*/ ciStateChanged(slot);
+ return 0;
+}
+
int eDVBCI_UI::mmiScreenEnq(int slot, int blind, int answerLen, char *text)
{
if (slot >= MAX_SLOTS)
data.mmiScreenReady = 1;
+ /*emit*/ ciStateChanged(slot);
+
return 0;
}
{
printf("eDVBCI_UI::mmiScreenFinish\n");
slotdata[slot].mmiScreenReady = 1;
+ /*emit*/ ciStateChanged(slot);
}
return 0;
}
+void eDVBCI_UI::mmiSessionDestroyed(int slot)
+{
+ /*emit*/ ciStateChanged(slot);
+}
+
int eDVBCI_UI::getMMIState(int slot)
{
return eDVBCIInterfaces::getInstance()->getMMIState(slot);