X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/682b9158bbddde229a2559365aa108812b15de61..350338b92543c7753db8753dca89adb885d30e9b:/lib/dvb_ci/dvbci.h diff --git a/lib/dvb_ci/dvbci.h b/lib/dvb_ci/dvbci.h index 961999e9..bdfa5d96 100644 --- a/lib/dvb_ci/dvbci.h +++ b/lib/dvb_ci/dvbci.h @@ -4,32 +4,59 @@ #include class eDVBCISession; +class eDVBCIApplicationManagerSession; +class eDVBCICAManagerSession; +class eDVBCIMMISession; -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; + eDVBCIMMISession *mmi_session; + + int getSlotID(); + int reset(); + int initialize(); + int startMMI(); + int stopMMI(); + int answerText(int answer); + int answerEnq(int answer, char *value); }; class eDVBCIInterfaces { +DECLARE_REF(eDVBCIInterfaces); + static eDVBCIInterfaces *instance; private: eSmartPtrList 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 stopMMI(int slot); + int answerText(int slot, int answer); + int answerEnq(int slot, int answer, char *value); }; #endif