start rotor with 13V and static power limiting mode (LNBP21).. after 500msec switch...
[enigma2.git] / lib / dvb / demux.cpp
index 3e05065be6565d8de2c76ffa2314f66a1074f14b..329eafda2a6bee9586d1327ca71bbd6c95d86840 100644 (file)
@@ -83,13 +83,24 @@ RESULT eDVBDemux::getSTC(pts_t &pts)
        }
        
        pts = stc.stc;
-       eDebug("got demux stc: %08llx", pts);
        
        ::close(fd);
+       return 0;
+}
+
+RESULT eDVBDemux::flush()
+{
+       // FIXME: implement flushing the PVR queue here.
        
+       m_event(evtFlush);
        return 0;
 }
 
+RESULT eDVBDemux::connectEvent(const Slot1<void,int> &event, ePtr<eConnection> &conn)
+{
+       conn = new eConnection(this, m_event.connect(event));
+       return 0;
+}
 
 void eDVBSectionReader::data(int)
 {
@@ -131,7 +142,7 @@ eDVBSectionReader::eDVBSectionReader(eDVBDemux *demux, eMainloop *context, RESUL
        
        if (fd >= 0)
        {
-               notifier=new eSocketNotifier(context, fd, eSocketNotifier::Read);
+               notifier=new eSocketNotifier(context, fd, eSocketNotifier::Read, false);
                CONNECT(notifier->activated, eDVBSectionReader::data);
                res = 0;
        } else
@@ -157,6 +168,7 @@ RESULT eDVBSectionReader::start(const eDVBSectionFilterMask &mask)
        if (fd < 0)
                return -ENODEV;
 
+       notifier->start();
 #if HAVE_DVB_API_VERSION < 3
        dmxSctFilterParams sct;
 #else
@@ -207,7 +219,8 @@ RESULT eDVBSectionReader::stop()
 
        active=0;
        ::ioctl(fd, DMX_STOP);
-       
+       notifier->stop();
+
        return 0;
 }