add needed functions
[enigma2.git] / lib / dvb / esection.cpp
index dbb9bf7881a546d8c3baf8ff793450e126813078..78db9015ffaf332ce81eb9fb00800d59d42e5e5a 100644 (file)
@@ -22,8 +22,7 @@ void eGTable::sectionRead(const __u8 *d)
 
 void eGTable::timeout()
 {
-       printf("timeout!\n");
-//     eDebug("timeout!");
+       eDebug("timeout!");
        m_reader->stop();
        ready = 1;
        error = -1;
@@ -58,15 +57,26 @@ RESULT eGTable::start(iDVBSectionReader *reader, const eDVBTableSpec &table)
        if (m_table.flags & eDVBTableSpec::tfHaveTID)
        {
                mask.data[0] = m_table.tid;
-               mask.mask[0] = 0xFF;
+               if (m_table.flags & eDVBTableSpec::tfHaveTIDMask)
+                       mask.mask[0] = m_table.tid_mask;
+               else
+                       mask.mask[0] = 0xFF;
        }
-       
+
        if (m_table.flags & eDVBTableSpec::tfHaveTIDExt)
        {
                mask.data[1] = m_table.tidext >> 8;
                mask.data[2] = m_table.tidext;
-               mask.mask[1] = 0xFF;
-               mask.mask[2] = 0xFF;
+               if (m_table.flags & eDVBTableSpec::tfHaveTIDExtMask)
+               {
+                       mask.mask[1] = m_table.tidext_mask >> 8;
+                       mask.mask[2] = m_table.tidext_mask;
+               }
+               else
+               {
+                       mask.mask[1] = 0xFF;
+                       mask.mask[2] = 0xFF;
+               }
        }
        
        if (!(m_table.flags & eDVBTableSpec::tfAnyVersion))
@@ -98,7 +108,6 @@ RESULT eGTable::start(iDVBSectionReader *reader, const eDVBTableSpec &table)
        
        if (m_table.flags & eDVBTableSpec::tfHaveTimeout)
        {
-               eDebug("have timeout, %d", m_table.timeout);
                if (m_timeout)
                        delete m_timeout;
                m_timeout = new eTimer(eApp);