X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fservice%2Fservicedvb.h;h=23675bf67e70a293fdaa9c688774f80c7be16da8;hp=43e4690f8b3509395d21c58f607ed1f390741d67;hb=8c55e2715c847f0dc5edd25af7ec3e4146592770;hpb=30861128f0afa56c412d9d43a7b3425484854b52 diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h index 43e4690..23675bf 100644 --- a/lib/service/servicedvb.h +++ b/lib/service/servicedvb.h @@ -114,13 +114,14 @@ public: RESULT audioDelay(ePtr &ptr); RESULT rdsDecoder(ePtr &ptr); RESULT keys(ePtr &ptr) { ptr = 0; return -1; } + RESULT streamed(ePtr &ptr) { ptr = 0; return -1; } // iPauseableService RESULT pause(); RESULT unpause(); RESULT setSlowMotion(int ratio); RESULT setFastForward(int ratio); - + // iSeekableService RESULT getLength(pts_t &len); RESULT seekTo(pts_t to); @@ -158,9 +159,10 @@ public: // iTimeshiftService RESULT startTimeshift(); - RESULT stopTimeshift(); + RESULT stopTimeshift(bool swToLive=true); int isTimeshiftActive(); RESULT activateTimeshift(); + RESULT setNextPlaybackFile(const char *fn); // iCueSheet PyObject *getCutList(); @@ -182,7 +184,8 @@ public: // iStreamableService RESULT stream(ePtr &ptr); PyObject *getStreamingData(); -private: + +protected: friend class eServiceFactoryDVB; eServiceReference m_reference; @@ -208,17 +211,16 @@ private: Signal2 m_event; /* pvr */ - int m_is_pvr, m_is_paused, m_timeshift_enabled, m_timeshift_active; + 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; int selectAudioStream(int n = -1); - RESULT setFastForward_internal(int ratio); + RESULT setFastForward_internal(int ratio, bool final_seek=false); /* timeshift */ ePtr m_record; @@ -226,11 +228,15 @@ private: void updateTimeshiftPids(); void switchToLive(); + + void resetTimeshift(int start); void switchToTimeshift(); - - void updateDecoder(); + + void updateDecoder(bool sendSeekableStateChanged=false); int m_skipmode; + int m_fastforward; + int m_slowmotion; /* cuesheet */ @@ -283,6 +289,8 @@ private: ePtr m_video_event_connection; void video_event(struct iTSMPEGDecoder::videoEvent); + + virtual ePtr createDataSource(eServiceReferenceDVB &ref); }; class eStaticServiceDVBBouquetInformation: public iStaticServiceInformation