224ecde80258bb40b7c401733eeb7694f3f353fd
[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         int getMMIState();
40 };
41
42 class eDVBCIInterfaces
43 {
44 DECLARE_REF(eDVBCIInterfaces);
45         static eDVBCIInterfaces *instance;
46 private:
47         eSmartPtrList<eDVBCISlot>       m_slots;
48         eDVBCISlot *getSlot(int slotid);
49 public:
50         eDVBCIInterfaces();
51         ~eDVBCIInterfaces();
52
53         static eDVBCIInterfaces *getInstance();
54         
55         int reset(int slot);
56         int initialize(int slot);
57         int startMMI(int slot);
58         int stopMMI(int slot);
59         int answerText(int slot, int answer);
60         int answerEnq(int slot, int answer, char *value);
61         int getMMIState(int slot);
62 };
63
64 #endif