+
+ 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);