-int eDVBCI_UI::availableMMI(int slot)
-{
- if (slot < MAX_SLOTS)
- return slotdata[slot].mmiScreenReady;
- 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);
-
- ePyObject 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)
- return 0;
-
- slot_ui_data &data = slotdata[slot];
-
- data.mmiScreenReady = 0;
-
- if (data.mmiScreen)
- Py_DECREF(data.mmiScreen);
- data.mmiScreen = PyList_New(2);
-
- ePyObject tuple = PyTuple_New(1);
- PyTuple_SET_ITEM(tuple, 0, PyString_FromString("ENQ"));
- PyList_SET_ITEM(data.mmiScreen, 0, tuple);
-
- tuple = PyTuple_New(4);
- PyTuple_SET_ITEM(tuple, 0, PyString_FromString("PIN"));
- PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong(answerLen));
- PyTuple_SET_ITEM(tuple, 2, PyString_FromString(text));
- PyTuple_SET_ITEM(tuple, 3, PyInt_FromLong(blind));
-
- PyList_SET_ITEM(data.mmiScreen, 1, tuple);
-
- data.mmiScreenReady = 1;
-
- /*emit*/ ciStateChanged(slot);
-
- return 0;
-}
-
-int eDVBCI_UI::mmiScreenBegin(int slot, int listmenu)
-{
- if (slot >= MAX_SLOTS)
- return 0;
-
- eDebug("eDVBCI_UI::mmiScreenBegin");
-
- slot_ui_data &data = slotdata[slot];
-
- data.mmiScreenReady = 0;
-
- if (data.mmiScreen)
- Py_DECREF(data.mmiScreen);
-
- data.mmiScreen = PyList_New(1);
-
- ePyObject tuple = PyTuple_New(1);
- if (listmenu == 0) //menu
- PyTuple_SET_ITEM(tuple, 0, PyString_FromString("MENU"));
- else //list
- PyTuple_SET_ITEM(tuple, 0, PyString_FromString("LIST"));
-
- PyList_SET_ITEM(data.mmiScreen, 0, tuple);
-
- data.mmiTuplePos = 1;
-
- return 0;
-}
-
-int eDVBCI_UI::mmiScreenAddText(int slot, int type, char *value)
-{
- if (slot >= MAX_SLOTS)
- return 0;
-
- eDebug("eDVBCI_UI::mmiScreenAddText(%s)",value ? value : "");
-
- slot_ui_data &data = slotdata[slot];
-
- ePyObject tuple = PyTuple_New(3);
-
- if (type == 0) //title
- PyTuple_SET_ITEM(tuple, 0, PyString_FromString("TITLE"));
- else if (type == 1) //subtitle
- PyTuple_SET_ITEM(tuple, 0, PyString_FromString("SUBTITLE"));
- else if (type == 2) //bottom
- PyTuple_SET_ITEM(tuple, 0, PyString_FromString("BOTTOM"));
- else
- PyTuple_SET_ITEM(tuple, 0, PyString_FromString("TEXT"));
-
- eDebug("addText %s with id %d", value, type);
-
- PyTuple_SET_ITEM(tuple, 1, PyString_FromString(value));
-
- if (type > 2)
- PyTuple_SET_ITEM(tuple, 2, PyInt_FromLong(type-2));
- else
- PyTuple_SET_ITEM(tuple, 2, PyInt_FromLong(-1));
-
- PyList_Append(data.mmiScreen, tuple);
- Py_DECREF(tuple);
-
- return 0;
-}
-
-int eDVBCI_UI::mmiScreenFinish(int slot)
-{
- if (slot < MAX_SLOTS)
- {
- eDebug("eDVBCI_UI::mmiScreenFinish");
- slotdata[slot].mmiScreenReady = 1;
- /*emit*/ ciStateChanged(slot);
- }
- return 0;
-}
-
-void eDVBCI_UI::mmiSessionDestroyed(int slot)
-{
- /*emit*/ ciStateChanged(slot);
-}
-