X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fservice%2Fservicedvb.h;h=6d2eaf93d2eb7e2c575d5b399f6a15ce1e206900;hp=1262836e90d0cdb9db864c919f153749d928bbbf;hb=7963a66b2debe9cf6ae566cb88511fdfdc9dc216;hpb=198d166196d8c4b1824be0347bb324890e1cfc5c diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h index 1262836..6d2eaf9 100644 --- a/lib/service/servicedvb.h +++ b/lib/service/servicedvb.h @@ -162,6 +162,7 @@ public: RESULT stopTimeshift(bool swToLive=true); int isTimeshiftActive(); RESULT activateTimeshift(); + RESULT setNextPlaybackFile(const char *fn); // iCueSheet PyObject *getCutList(); @@ -183,14 +184,16 @@ public: // iStreamableService RESULT stream(ePtr &ptr); PyObject *getStreamingData(); + void setQpipMode(bool value, bool audio); -private: +protected: friend class eServiceFactoryDVB; eServiceReference m_reference; ePtr m_dvb_service; ePtr m_decoder; + int m_decoder_index; int m_is_primary; int m_have_video_pid; int m_tune_state; @@ -199,8 +202,12 @@ private: eDVBServicePMTHandler m_service_handler_timeshift; eDVBServiceEITHandler m_event_handler; int m_current_audio_pid; + int m_current_video_pid_type; + + bool m_qpip_mode; + bool m_play_audio; - eDVBServicePlay(const eServiceReference &ref, eDVBService *service); + eDVBServicePlay(const eServiceReference &ref, eDVBService *service, bool connect_event=true); /* events */ void gotNewEvent(); @@ -208,14 +215,15 @@ private: void serviceEvent(int event); void serviceEventTimeshift(int event); Signal2 m_event; + + int m_is_stream; /* pvr */ int m_is_pvr, m_is_paused, m_timeshift_enabled, m_timeshift_active, m_timeshift_changed; int m_first_program_info; - std::string m_timeshift_file; + std::string m_timeshift_file, m_timeshift_file_next; int m_timeshift_fd; - ePtr m_decode_demux; int m_current_audio_stream; @@ -227,9 +235,11 @@ private: std::set m_pids_active; void updateTimeshiftPids(); - void switchToLive(); + virtual void switchToLive(); + + void resetTimeshift(int start); void switchToTimeshift(); - + void updateDecoder(bool sendSeekableStateChanged=false); int m_skipmode; @@ -287,6 +297,8 @@ private: ePtr m_video_event_connection; void video_event(struct iTSMPEGDecoder::videoEvent); + + virtual ePtr createTsSource(eServiceReferenceDVB &ref); }; class eStaticServiceDVBBouquetInformation: public iStaticServiceInformation