X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/4dfae02c457922170d52822bed2c80bd82152d3f..d7ab8980f447224e6ece5d741dd9a334949ca315:/lib/dvb/esection.h diff --git a/lib/dvb/esection.h b/lib/dvb/esection.h index d7fd728a..2bb17a98 100644 --- a/lib/dvb/esection.h +++ b/lib/dvb/esection.h @@ -4,25 +4,28 @@ #include #include +#define TABLE_eDebug(x...) do { if (m_debug) eDebug(x); } while(0) +#define TABLE_eDebugNoNewLine(x...) do { if (m_debug) eDebugNoNewLine(x); } while(0) + class eGTable: public iObject, public Object { -DECLARE_REF(eGTable); -private: + DECLARE_REF(eGTable); ePtr m_reader; eDVBTableSpec m_table; unsigned int m_tries; - eTimer *m_timeout; + ePtr m_timeout; void sectionRead(const __u8 *data); void timeout(); ePtr m_sectionRead_conn; protected: - virtual int createTable(int nr, const __u8 *data, unsigned int max)=0; + bool m_debug; + virtual int createTable(unsigned int nr, const __u8 *data, unsigned int max)=0; public: Signal1 tableReady; - eGTable(); + eGTable(bool debug=true); RESULT start(iDVBSectionReader *reader, const eDVBTableSpec &table); RESULT start(iDVBDemux *reader, const eDVBTableSpec &table); RESULT getSpec(eDVBTableSpec &spec) { spec = m_table; return 0; } @@ -38,12 +41,12 @@ private: std::vector sections; std::set avail; protected: - int createTable(int nr, const __u8 *data, unsigned int max) + int createTable(unsigned int nr, const __u8 *data, unsigned int max) { unsigned int ssize = sections.size(); if (max < ssize || nr >= max) { - eDebug("kaputt max(%d) < ssize(%d) || nr(%d) >= max(%d)", + TABLE_eDebug("kaputt max(%d) < ssize(%d) || nr(%d) >= max(%d)", max, ssize, nr, max); return 0; } @@ -56,22 +59,22 @@ protected: for (unsigned int i = 0; i < max; ++i) if (avail.find(i) != avail.end()) - eDebugNoNewLine("+"); + TABLE_eDebugNoNewLine("+"); else - eDebugNoNewLine("-"); + TABLE_eDebugNoNewLine("-"); - eDebug(" %d/%d TID %02x", avail.size(), max, data[0]); + TABLE_eDebug(" %d/%d TID %02x", avail.size(), max, data[0]); if (avail.size() == max) { - eDebug("done!"); + TABLE_eDebug("done!"); return 1; } else return 0; } public: std::vector &getSections() { return sections; } - eTable(): eGTable() + eTable(bool debug=true): eGTable(debug) { } ~eTable() @@ -186,7 +189,7 @@ public: next=0; first=0; - assert(current->ready); + ASSERT(current->ready); /*emit*/ tableReady(0);