X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/28ddb2c21514dc49826847b38f60bf3a663be551..191cade7c45bee53df2776ff5bb3f26b2cdafc12:/lib/service/servicedvb.h diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h index a07e4410..4b13193e 100644 --- a/lib/service/servicedvb.h +++ b/lib/service/servicedvb.h @@ -58,7 +58,8 @@ private: class eDVBServicePlay: public iPlayableService, public iPauseableService, public iSeekableService, public Object, public iServiceInformation, public iAudioTrackSelection, public iFrontendStatusInformation, - public iSubserviceList, public iTimeshiftService + public iSubserviceList, public iTimeshiftService, + public iCueSheet { DECLARE_REF(eDVBServicePlay); public: @@ -68,6 +69,8 @@ public: RESULT connectEvent(const Slot2 &event, ePtr &connection); RESULT start(); RESULT stop(); + RESULT setTarget(int target); + RESULT seek(ePtr &ptr); RESULT pause(ePtr &ptr); RESULT info(ePtr &ptr); @@ -75,6 +78,7 @@ public: RESULT frontendStatusInfo(ePtr &ptr); RESULT subServices(ePtr &ptr); RESULT timeshift(ePtr &ptr); + RESULT cueSheet(ePtr &ptr); // iPauseableService RESULT pause(); @@ -95,6 +99,7 @@ public: RESULT getEvent(ePtr &evt, int nownext); int getInfo(int w); std::string getInfoString(int w); + PyObject *getInfoObject(int w); // iAudioTrackSelection int getNumberOfTracks(); @@ -103,6 +108,7 @@ public: // iFrontendStatusInformation int getFrontendInfo(int w); + PyObject *getFrontendData(bool); // iSubserviceList int getNumberOfSubservices(); @@ -114,6 +120,11 @@ public: int isTimeshiftActive(); RESULT activateTimeshift(); + // iCueSheet + PyObject *getCutList(); + void setCutList(PyObject *); + void setCutListEnable(int enable); + private: friend class eServiceFactoryDVB; eServiceReference m_reference; @@ -121,6 +132,7 @@ private: ePtr m_dvb_service; ePtr m_decoder; + int m_is_primary; /* in timeshift mode, we essentially have two channels, and thus pmt handlers. */ eDVBServicePMTHandler m_service_handler, m_service_handler_timeshift; @@ -135,6 +147,7 @@ private: Signal2 m_event; int m_is_pvr, m_is_paused, m_timeshift_enabled, m_timeshift_active; + int m_first_program_info; std::string m_timeshift_file; int m_timeshift_fd; @@ -156,6 +169,29 @@ private: int m_skipmode; ePtr m_cue; + + struct cueEntry + { + pts_t where; + unsigned int what; + + bool operator < (const struct cueEntry &o) const + { + return where < o.where; + } + cueEntry(const pts_t &where, unsigned int what) : + where(where), what(what) + { + } + }; + + std::multiset m_cue_entries; + int m_cuesheet_changed, m_cutlist_enabled; + + void loadCuesheet(); + void saveCuesheet(); + + void cutlistToCuesheet(); }; #endif