Support fast channel change.
[vuplus_dvbapp] / lib / service / servicedvb.h
index dafaf35..7ded16a 100644 (file)
@@ -185,7 +185,7 @@ public:
        RESULT stream(ePtr<iStreamableService> &ptr);
        PyObject *getStreamingData();
 
-private:
+protected:
        friend class eServiceFactoryDVB;
        eServiceReference m_reference;
        
@@ -200,8 +200,9 @@ private:
        eDVBServicePMTHandler m_service_handler_timeshift;
        eDVBServiceEITHandler m_event_handler;
        int m_current_audio_pid;
+       int m_current_video_pid_type;
        
-       eDVBServicePlay(const eServiceReference &ref, eDVBService *service);
+       eDVBServicePlay(const eServiceReference &ref, eDVBService *service, bool connect_event=true);
        
                /* events */
        void gotNewEvent();
@@ -209,6 +210,8 @@ private:
        void serviceEvent(int event);
        void serviceEventTimeshift(int event);
        Signal2<void,iPlayableService*,int> m_event;
+
+       int m_is_stream;
        
                /* pvr */
        int m_is_pvr, m_is_paused, m_timeshift_enabled, m_timeshift_active, m_timeshift_changed;
@@ -227,7 +230,7 @@ private:
        std::set<int> m_pids_active;
 
        void updateTimeshiftPids();
-       void switchToLive();
+       virtual void switchToLive();
 
        void resetTimeshift(int start);
        void switchToTimeshift();
@@ -289,6 +292,8 @@ private:
 
        ePtr<eConnection> m_video_event_connection;
        void video_event(struct iTSMPEGDecoder::videoEvent);
+
+       virtual ePtr<iTsSource> createTsSource(eServiceReferenceDVB &ref);
 };
 
 class eStaticServiceDVBBouquetInformation: public iStaticServiceInformation