better resizing
[enigma2.git] / lib / dvb / esection.h
index ca63c18448d6a1ec329ca5177b6fb0e1db75e665..af5c012bc22ff687778ae35e91a0a2f9284dff18 100644 (file)
@@ -1,16 +1,18 @@
 #ifndef __esection_h
 #define __esection_h
 
-#include <lib/dvb/isection.h>
+#include <lib/dvb/idemux.h>
 #include <set>
 
-class eGTable: public virtual iObject, public Object
+class eGTable: public iObject, public Object
 {
-DECLARE_REF;
+DECLARE_REF(eGTable);
 private:
        ePtr<iDVBSectionReader> m_reader;
        eDVBTableSpec m_table;
        
+       unsigned int m_tries;
+       
        eTimer *m_timeout;
 
        void sectionRead(const __u8 *data);
@@ -42,7 +44,6 @@ protected:
                        delete sections[nr];
                sections.resize(max);
                
-               
                sections[nr] = new Section(data);
                avail.insert(nr);
 
@@ -52,11 +53,13 @@ protected:
                        else
                                printf("-");
                                
-               printf(" %d/%d\n", avail.size(), max);
+               printf(" %d/%d TID %02x\n", avail.size(), max, data[0]);
 
                if (avail.size() == max)
+               {
+                       printf("done!\n");
                        return 1;
-               else
+               else
                        return 0;
        }
 public:
@@ -95,7 +98,12 @@ public:
 
        ~eAUTable()
        {
-               current=next=0;
+               stop();
+       }
+       
+       void stop()
+       {
+               current = next = 0;
        }
        
        int begin(eMainloop *m, const eDVBTableSpec &spec, ePtr<iDVBDemux> demux)