add new tuneExt function to eDVBServicePMTHandler to make the class more reusable
[enigma2.git] / lib / dvb / pmt.cpp
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());
                }
        }