use boundFunction from tools
[enigma2.git] / lib / dvb_ci / dvbci.h
1 #ifndef __dvbci_dvbci_h
2 #define __dvbci_dvbci_h
3
4 #include <lib/base/ebase.h>
5
6 class eDVBCISession;
7 class eDVBCIApplicationManagerSession;
8 class eDVBCICAManagerSession;
9 class eDVBCIMMISession;
10
11 class eDVBCISlot: public iObject, public Object
12 {
13 DECLARE_REF(eDVBCISlot);
14 private:
15         int slotid;
16         int fd;
17         void data(int);
18         eSocketNotifier *notifier;
19
20         int state;
21         enum {stateRemoved, stateInserted};     
22 public:
23         eDVBCISlot(eMainloop *context, int nr);
24         ~eDVBCISlot();
25         
26         int send(const unsigned char *data, size_t len);
27         
28         eDVBCIApplicationManagerSession *application_manager;
29         eDVBCICAManagerSession *ca_manager;
30         eDVBCIMMISession *mmi_session;
31         
32         int getSlotID();
33         int reset();
34         int initialize();
35         int startMMI();
36         int stopMMI();
37         int answerText(int answer);
38         int answerEnq(int answer, char *value);
39 };
40
41 class eDVBCIInterfaces
42 {
43 DECLARE_REF(eDVBCIInterfaces);
44         static eDVBCIInterfaces *instance;
45 private:
46         eSmartPtrList<eDVBCISlot>       m_slots;
47         eDVBCISlot *getSlot(int slotid);
48 public:
49         eDVBCIInterfaces();
50         ~eDVBCIInterfaces();
51
52         static eDVBCIInterfaces *getInstance();
53         
54         int reset(int slot);
55         int initialize(int slot);
56         int startMMI(int slot);
57         int stopMMI(int slot);
58         int answerText(int slot, int answer);
59         int answerEnq(int slot, int answer, char *value);
60 };
61
62 #endif