X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/3eba2c632cc9515a424a2986d6bdeb690f15fd81..ef91de1b6462606a6377a2e05a1bbac50c20163d:/lib/dvb_ci/dvbci.h diff --git a/lib/dvb_ci/dvbci.h b/lib/dvb_ci/dvbci.h index 1921ad7f..0c1051ba 100644 --- a/lib/dvb_ci/dvbci.h +++ b/lib/dvb_ci/dvbci.h @@ -10,6 +10,7 @@ class eDVBCIApplicationManagerSession; class eDVBCICAManagerSession; class eDVBCIMMISession; class eDVBServicePMTHandler; +class eDVBCISlot; class eDVBCISlot: public iObject, public Object { @@ -24,6 +25,8 @@ private: enum {stateRemoved, stateInserted}; uint8_t prev_sent_capmt_version; public: + int use_count; + eDVBCISlot(eMainloop *context, int nr); ~eDVBCISlot(); @@ -50,20 +53,20 @@ public: struct CIPmtHandler { eDVBServicePMTHandler *pmthandler; - eDVBCISlot *usedby; + eDVBCISlot *cislot; CIPmtHandler() - :pmthandler(NULL), usedby(NULL) + :pmthandler(NULL), cislot(NULL) {} CIPmtHandler( const CIPmtHandler &x ) - :pmthandler(x.pmthandler), usedby(x.usedby) + :pmthandler(x.pmthandler), cislot(x.cislot) {} CIPmtHandler( eDVBServicePMTHandler *ptr ) - :pmthandler(ptr), usedby(NULL) + :pmthandler(ptr), cislot(NULL) {} - bool operator<(const CIPmtHandler &x) const { return x.pmthandler < pmthandler; } + bool operator==(const CIPmtHandler &x) const { return x.pmthandler == pmthandler; } }; -typedef std::set PMTHandlerSet; +typedef std::list PMTHandlerList; class eDVBCIInterfaces { @@ -73,7 +76,7 @@ private: eSmartPtrList m_slots; eDVBCISlot *getSlot(int slotid); - PMTHandlerSet m_pmt_handlers; + PMTHandlerList m_pmt_handlers; public: eDVBCIInterfaces(); ~eDVBCIInterfaces();