+ int send(const unsigned char *data, size_t len);
+
+ void setAppManager( eDVBCIApplicationManagerSession *session );
+ void setMMIManager( eDVBCIMMISession *session );
+ void setCAManager( eDVBCICAManagerSession *session );
+
+ eDVBCIApplicationManagerSession *getAppManager() { return application_manager; }
+ eDVBCIMMISession *getMMIManager() { return mmi_session; }
+ eDVBCICAManagerSession *getCAManager() { return ca_manager; }
+
+ int getState() { return state; }
+ int getSlotID();
+ int reset();
+ int startMMI();
+ int stopMMI();
+ int answerText(int answer);
+ int answerEnq(char *value);
+ int cancelEnq();
+ int getMMIState();
+ int sendCAPMT(eDVBServicePMTHandler *ptr, const std::vector<uint16_t> &caids=std::vector<uint16_t>());
+ void removeService(uint16_t program_number=0xFFFF);
+ int getNumOfServices() { return running_services.size(); }
+ int setSource(data_source source);
+};
+
+struct CIPmtHandler
+{
+ eDVBServicePMTHandler *pmthandler;
+ eDVBCISlot *cislot;
+ CIPmtHandler()
+ :pmthandler(NULL), cislot(NULL)
+ {}
+ CIPmtHandler( const CIPmtHandler &x )
+ :pmthandler(x.pmthandler), cislot(x.cislot)
+ {}
+ CIPmtHandler( eDVBServicePMTHandler *ptr )
+ :pmthandler(ptr), cislot(NULL)
+ {}
+ bool operator==(const CIPmtHandler &x) const { return x.pmthandler == pmthandler; }