refs bug #485
[enigma2.git] / lib / dvb_ci / dvbci_ui.cpp
1 #include <lib/dvb_ci/dvbci_ui.h>
2 #include <lib/dvb_ci/dvbci.h>
3
4 #include <unistd.h>
5 #include <fcntl.h>
6 #include <sys/ioctl.h>
7
8 #include <lib/base/init.h>
9 #include <lib/base/init_num.h>
10 #include <lib/base/eerror.h>
11 #include <lib/base/estring.h>
12
13 #define MAX_SLOTS 4
14
15 eDVBCI_UI *eDVBCI_UI::instance;
16
17 eDVBCI_UI::eDVBCI_UI()
18         :eMMI_UI(MAX_SLOTS)
19 {
20         ASSERT(!instance);
21         instance = this;
22 }
23
24 eDVBCI_UI *eDVBCI_UI::getInstance()
25 {
26         return instance;
27 }
28
29 void eDVBCI_UI::setInit(int slot)
30 {
31         eDVBCIInterfaces::getInstance()->initialize(slot);
32 }
33
34 void eDVBCI_UI::setReset(int slot)
35 {
36         eDVBCIInterfaces::getInstance()->reset(slot);
37 }
38
39 int eDVBCI_UI::startMMI(int slot)
40 {
41         eDVBCIInterfaces::getInstance()->startMMI(slot);
42         return 0;
43 }
44
45 int eDVBCI_UI::stopMMI(int slot)
46 {
47         eDVBCIInterfaces::getInstance()->stopMMI(slot);
48         return 0;
49 }
50
51 int eDVBCI_UI::answerMenu(int slot, int answer)
52 {
53         eDVBCIInterfaces::getInstance()->answerText(slot, answer);
54         return 0;
55 }
56
57 int eDVBCI_UI::answerEnq(int slot, char *value)
58 {
59         eDVBCIInterfaces::getInstance()->answerEnq(slot, value);
60         return 0;
61 }
62
63 int eDVBCI_UI::cancelEnq(int slot)
64 {
65         eDVBCIInterfaces::getInstance()->cancelEnq(slot);
66         return 0;
67 }
68
69 int eDVBCI_UI::getMMIState(int slot)
70 {
71         return eDVBCIInterfaces::getInstance()->getMMIState(slot);
72 }
73
74 int eDVBCI_UI::setClockRate(int slot, int rate)
75 {
76         return eDVBCIInterfaces::getInstance()->setCIClockRate(slot, rate);
77 }
78
79 //FIXME: correct "run/startlevel"
80 eAutoInitP0<eDVBCI_UI> init_dvbciui(eAutoInitNumbers::rc, "DVB-CI UI");