add new tuneExt function to eDVBServicePMTHandler to make the class more reusable
authorghost <andreas.monzner@multimedia-labs.de>
Wed, 10 Nov 2010 16:18:45 +0000 (17:18 +0100)
committerghost <andreas.monzner@multimedia-labs.de>
Wed, 10 Nov 2010 16:18:45 +0000 (17:18 +0100)
lib/dvb/pmt.cpp
lib/dvb/pmt.h

index ea4b96c55238d872bdd9ffe3644ba9d18571746c..ba5a3ade3a147a8459eeb37b379d1fccc3ccad3b 100644 (file)
@@ -674,6 +674,12 @@ void eDVBServicePMTHandler::SDTScanEvent(int event)
 }
 
 int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *cue, bool simulate, eDVBService *service)
+{
+       ePtr<iDataSource> s;
+       return tuneExt(ref, use_decode_demux, s, cue, simulate, service);
+}
+
+int eDVBServicePMTHandler::tuneExt(eServiceReferenceDVB &ref, int use_decode_demux, ePtr<iDataSource> &source, eCueSheet *cue, bool simulate, eDVBService *service)
 {
        RESULT res=0;
        m_reference = ref;
@@ -757,7 +763,10 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux,
                if (m_pvr_channel)
                {
                        m_pvr_channel->setCueSheet(cue);
-                       m_pvr_channel->playFile(ref.path.c_str());
+                       if (source)
+                               m_pvr_channel->playSource(source);
+                       else
+                               m_pvr_channel->playFile(ref.path.c_str());
                }
        }
 
index 483c06b15ae3007c06514ca7760d30fdf7a05300..0ea36e47750ea1f000b5678dace3fd3a76881581 100644 (file)
@@ -206,6 +206,8 @@ public:
        void resetCachedProgram() { m_have_cached_program = false; }
 
        int tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *sg=0, bool simulate=false, eDVBService *service = 0);
+       int tuneExt(eServiceReferenceDVB &ref, int use_decode_demux, ePtr<iDataSource> &, eCueSheet *sg=0, bool simulate=false, eDVBService *service = 0);
+
        void free();
 private:
        bool m_have_cached_program;