1 #include <lib/dvb_ci/dvbci_ui.h>
2 #include <lib/dvb_ci/dvbci.h>
10 #include <lib/base/init.h>
11 #include <lib/base/init_num.h>
12 #include <lib/base/econfig.h>
13 #include <lib/base/eerror.h>
15 eDVBCI_UI *eDVBCI_UI::instance = 0;
17 eDVBCI_UI::eDVBCI_UI()
21 for(i=0;i<MAX_SLOTS;i++)
22 state[i] = 0; //no module
29 eDVBCI_UI::~eDVBCI_UI()
33 eDVBCI_UI *eDVBCI_UI::getInstance()
38 int eDVBCI_UI::getState(int slot)
40 return state[slot]; //exploit me ;)
43 void eDVBCI_UI::setState(int slot, int newState)
45 state[slot] = newState;
48 std::string eDVBCI_UI::getAppName(int slot)
53 void eDVBCI_UI::setAppName(int slot, const char *name)
55 //printf("set name to -%c-\n", name);
59 void eDVBCI_UI::setReset(int slot)
61 eDVBCIInterfaces::getInstance()->reset(slot);
64 int eDVBCI_UI::startMMI(int slot)
66 eDVBCIInterfaces::getInstance()->startMMI(slot);
69 int eDVBCI_UI::stopMMI(int slot)
71 eDVBCIInterfaces::getInstance()->stopMMI(slot);
74 int eDVBCI_UI::initialize(int slot)
76 eDVBCIInterfaces::getInstance()->initialize(slot);
79 int eDVBCI_UI::answerMenu(int slot, int answer)
81 eDVBCIInterfaces::getInstance()->answerText(slot, answer);
84 int eDVBCI_UI::answerEnq(int slot, int answer, char *value)
86 eDVBCIInterfaces::getInstance()->answerEnq(slot, answer, value);
89 int eDVBCI_UI::availableMMI(int slot)
91 return mmiScreenReady;
94 int eDVBCI_UI::mmiScreenBegin(int slot, int listmenu)
96 printf("eDVBCI_UI::mmiScreenBegin\n");
100 mmiScreen = PyList_New(1);
102 PyObject *tuple = PyTuple_New(1);
104 PyTuple_SetItem(tuple, 0, PyString_FromString("LIST"));
106 PyTuple_SetItem(tuple, 0, PyString_FromString("MENU"));
107 PyList_SetItem(mmiScreen, 0, tuple);
114 int eDVBCI_UI::mmiScreenAddText(int slot, int type, char *value)
116 printf("eDVBCI_UI::mmiScreenAddText(%s)\n",value);
118 PyObject *tuple = PyTuple_New(3);
120 if(type == 0) //title
121 PyTuple_SetItem(tuple, 0, PyString_FromString("TITLE"));
122 else if(type == 1) //subtitle
123 PyTuple_SetItem(tuple, 0, PyString_FromString("SUBTITLE"));
124 else if(type == 2) //bottom
125 PyTuple_SetItem(tuple, 0, PyString_FromString("BOTTOM"));
127 PyTuple_SetItem(tuple, 0, PyString_FromString("TEXT"));
129 printf("addText %s with id %d\n", value, type);
131 PyTuple_SetItem(tuple, 1, PyString_FromString(value));
134 PyTuple_SetItem(tuple, 2, PyInt_FromLong(type-2));
136 PyTuple_SetItem(tuple, 2, PyInt_FromLong(-1));
138 PyList_Append(mmiScreen, tuple);
143 int eDVBCI_UI::mmiScreenFinish(int slot)
145 printf("eDVBCI_UI::mmiScreenFinish\n");
152 int eDVBCI_UI::getMMIState(int slot)
154 return eDVBCIInterfaces::getInstance()->getMMIState(slot);
157 PyObject *eDVBCI_UI::getMMIScreen(int slot)
159 if(mmiScreenReady != 1)
167 //FIXME: correct "run/startlevel"
168 eAutoInitP0<eDVBCI_UI> init_dvbciui(eAutoInitNumbers::rc, "DVB-CI UI");