X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/02da1f586ef7945fef385e6d4743ef53441bc2fa..865b494130c35c6bda653b196fdbc61890ea76b5:/lib/dvb/scan.h diff --git a/lib/dvb/scan.h b/lib/dvb/scan.h index cc727644..743ea8d9 100644 --- a/lib/dvb/scan.h +++ b/lib/dvb/scan.h @@ -4,10 +4,14 @@ #include #include #include +#include +#include #include -class eDVBScan: public Object, public virtual iObject +class eDVBScan: public Object, public iObject { +DECLARE_REF(eDVBScan); +private: /* chid helper functions: */ /* heuristically determine if onid/tsid is valid */ @@ -16,7 +20,7 @@ class eDVBScan: public Object, public virtual iObject eDVBNamespace buildNamespace(eOriginalNetworkID onid, eTransportStreamID tsid, unsigned long hash); /* scan resources */ - ePtr m_channel; + eUsePtr m_channel; ePtr m_demux; /* infrastructure */ @@ -39,6 +43,7 @@ class eDVBScan: public Object, public virtual iObject std::list > m_ch_toScan, m_ch_scanned, m_ch_unavailable; ePtr m_ch_current; + eDVBChannelID m_chid_current; ePtr > m_SDT; ePtr > m_NIT; @@ -48,7 +53,8 @@ class eDVBScan: public Object, public virtual iObject void NITready(int err); void BATready(int err); - void addChannel(const eDVBChannelID &chid, iDVBFrontendParameters *feparm); + void addKnownGoodChannel(const eDVBChannelID &chid, iDVBFrontendParameters *feparm); + void addChannelToScan(const eDVBChannelID &chid, iDVBFrontendParameters *feparm); int sameChannel(iDVBFrontendParameters *ch1, iDVBFrontendParameters *ch2) const; void channelDone(); @@ -61,9 +67,11 @@ public: void start(const std::list > &known_transponders); - enum { evtUpdate, evtFinish }; + enum { evtUpdate, evtFinish, evtFail }; RESULT connectEvent(const Slot1 &event, ePtr &connection); - void insertInto(eDVBDB *db); + void insertInto(iDVBChannelList *db); + + void getStats(int &transponders_done, int &transponders_total, int &services); }; #endif