+ int getPVRChannel(ePtr<iDVBPVRChannel> &pvr_channel);
+ int getServiceReference(eServiceReferenceDVB &service) { service = m_reference; return 0; }
+ int getService(ePtr<eDVBService> &service) { service = m_service; return 0; }
+ int getPMT(ePtr<eTable<ProgramMapSection> > &ptr) { return m_PMT.getCurrent(ptr); }
+ int getChannel(eUsePtr<iDVBChannel> &channel);
+ void resetCachedProgram() { m_have_cached_program = false; }
+
+ /* deprecated interface */
+ int tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *sg=0, bool simulate=false, eDVBService *service = 0);
+
+ /* new interface */
+ int tuneExt(eServiceReferenceDVB &ref, int use_decode_demux, ePtr<iTsSource> &, const char *streaminfo_file, eCueSheet *sg=0, bool simulate=false, eDVBService *service = 0);
+
+ void free();
+private:
+ bool m_have_cached_program;
+ program m_cached_program;
+#endif