+
+ int m_skipmode;
+
+ /* cuesheet */
+
+ ePtr<eCueSheet> 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<cueEntry> m_cue_entries;
+ int m_cuesheet_changed, m_cutlist_enabled;
+
+ void loadCuesheet();
+ void saveCuesheet();
+
+ void cutlistToCuesheet();
+
+ eSubtitleWidget *m_subtitle_widget;
+
+ /* teletext subtitles */
+ ePtr<eDVBTeletextParser> m_teletext_parser;
+ void newSubtitlePage(const eDVBTeletextSubtitlePage &p);
+ ePtr<eConnection> m_new_subtitle_page_connection;
+ std::list<eDVBTeletextSubtitlePage> m_subtitle_pages;
+
+ /* dvb subtitles */
+ ePtr<eDVBSubtitleParser> m_subtitle_parser;
+ void newDVBSubtitlePage(const eDVBSubtitlePage &p);
+ ePtr<eConnection> m_new_dvb_subtitle_page_connection;
+ std::list<eDVBSubtitlePage> m_dvb_subtitle_pages;
+
+ eTimer m_subtitle_sync_timer;
+ void checkSubtitleTiming();
+
+ /* radiotext */
+ ePtr<eDVBRdsDecoder> m_rds_decoder;
+ ePtr<eConnection> m_rds_decoder_event_connection;
+ void rdsDecoderEvent(int);
+
+ ePtr<eConnection> m_video_event_connection;
+ void video_event(struct iTSMPEGDecoder::videoEvent);
+ struct iTSMPEGDecoder::videoEvent m_videoEventData;
+};
+
+class eStaticServiceDVBBouquetInformation: public iStaticServiceInformation
+{
+ DECLARE_REF(eStaticServiceDVBBouquetInformation);
+ eServiceReference m_playable_service;
+public:
+ eServiceReference &getPlayableService() { return m_playable_service; }
+ RESULT getName(const eServiceReference &ref, std::string &name);
+ int getLength(const eServiceReference &ref);
+ int isPlayable(const eServiceReference &ref, const eServiceReference &ignore);
+ RESULT getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &ptr, time_t start_time);