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