add stuff
[enigma2.git] / lib / dvb_ci / dvbci.h
index 961999e93b353408ec4e114ad2ae531aa63fcaf0..c6166555b895d7055f4f8d38332e5624639f89fd 100644 (file)
@@ -4,32 +4,53 @@
 #include <lib/base/ebase.h>
 
 class eDVBCISession;
+class eDVBCIApplicationManagerSession;
+class eDVBCICAManagerSession;
 
-class eDVBCISlot: public Object
+class eDVBCISlot: public iObject, public Object
 {
 DECLARE_REF(eDVBCISlot);
 private:
+       int slotid;
        int fd;
        void data(int);
-       eSocketNotifier *notifier_data;
-       void event(int);
-       eSocketNotifier *notifier_event;
-       
-       eDVBCISession *se;
+       eSocketNotifier *notifier;
+
+       int state;
+       enum {stateRemoved, stateInserted};     
 public:
        eDVBCISlot(eMainloop *context, int nr);
-       virtual ~eDVBCISlot();
+       ~eDVBCISlot();
+       
+       int send(const unsigned char *data, size_t len);
        
-       int eDVBCISlot::write(const unsigned char *data, size_t len);
+       eDVBCIApplicationManagerSession *application_manager;
+       eDVBCICAManagerSession *ca_manager;
+       
+       int getSlotID();
+       int reset();
+       int initialize();
+       int startMMI();
+       int answerMMI(int answer, char *value);
 };
 
 class eDVBCIInterfaces
 {
+DECLARE_REF(eDVBCIInterfaces);
+       static eDVBCIInterfaces *instance;
 private:
        eSmartPtrList<eDVBCISlot>       m_slots;
+       eDVBCISlot *getSlot(int slotid);
 public:
        eDVBCIInterfaces();
-       virtual ~eDVBCIInterfaces();
+       ~eDVBCIInterfaces();
+
+       static eDVBCIInterfaces *getInstance();
+       
+       int reset(int slot);
+       int initialize(int slot);
+       int startMMI(int slot);
+       int answerMMI(int slot, int answer, char *value);
 };
 
 #endif