X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/4c9293c08de2abe11f03d15f6515201348bc41f1..0c59a4279f93f08fe95fca5f2e55f3e025f0cceb:/lib/service/servicedvb.h diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h index b40341f7..85e97ea1 100644 --- a/lib/service/servicedvb.h +++ b/lib/service/servicedvb.h @@ -38,7 +38,7 @@ class eBouquet; class eDVBServiceList: public iListableService, public iMutableServiceList { -DECLARE_REF(eDVBServiceList); + DECLARE_REF(eDVBServiceList); public: virtual ~eDVBServiceList(); PyObject *getContent(const char* formatstr, bool sorted=false); @@ -75,10 +75,13 @@ protected: public: // iFrontendInformation int getFrontendInfo(int w); - PyObject *getFrontendData(bool); + PyObject *getFrontendData(); + PyObject *getFrontendStatus(); + PyObject *getTransponderData(bool); + PyObject *getAll(bool original); // a sum of getFrontendData/Status/TransponderData }; -class eSubtitleWidget; +class eSubtitleWidget; class eDVBServicePlay: public eDVBServiceBase, public iPlayableService, public iPauseableService, @@ -86,9 +89,9 @@ class eDVBServicePlay: public eDVBServiceBase, public iAudioTrackSelection, public iAudioChannelSelection, public iSubserviceList, public iTimeshiftService, public iCueSheet, public iSubtitleOutput, public iAudioDelay, - public iRadioText + public iRdsDecoder, public iStreamableService { -DECLARE_REF(eDVBServicePlay); + DECLARE_REF(eDVBServicePlay); public: virtual ~eDVBServicePlay(); @@ -109,7 +112,8 @@ public: RESULT cueSheet(ePtr &ptr); RESULT subtitle(ePtr &ptr); RESULT audioDelay(ePtr &ptr); - RESULT radioText(ePtr &ptr); + RESULT rdsDecoder(ePtr &ptr); + RESULT keys(ePtr &ptr) { ptr = 0; return -1; } // iPauseableService RESULT pause(); @@ -136,13 +140,17 @@ public: int getNumberOfTracks(); RESULT selectTrack(unsigned int i); RESULT getTrackInfo(struct iAudioTrackInfo &, unsigned int n); + int getCurrentTrack(); // iAudioChannelSelection int getCurrentChannel(); RESULT selectChannel(int i); - // iRadioText - std::string getRadioText(int i=0); + // iRdsDecoder + std::string getText(int i=0); + void showRassSlidePicture(); + void showRassInteractivePic(int page, int subpage); + ePyObject getRassInteractiveMask(); // iSubserviceList int getNumberOfSubservices(); @@ -170,7 +178,10 @@ public: int getPCMDelay(); void setAC3Delay(int); void setPCMDelay(int); - + + // iStreamableService + RESULT stream(ePtr &ptr); + PyObject *getStreamingData(); private: friend class eServiceFactoryDVB; eServiceReference m_reference; @@ -185,6 +196,7 @@ private: /* in timeshift mode, we essentially have two channels, and thus pmt handlers. */ eDVBServicePMTHandler m_service_handler_timeshift; eDVBServiceEITHandler m_event_handler; + int m_current_audio_pid; eDVBServicePlay(const eServiceReference &ref, eDVBService *service); @@ -205,7 +217,7 @@ private: ePtr m_decode_demux; int m_current_audio_stream; - int selectAudioStream(int n); + int selectAudioStream(int n = -1); /* timeshift */ ePtr m_record; @@ -260,13 +272,17 @@ private: ePtr m_new_dvb_subtitle_page_connection; std::list m_dvb_subtitle_pages; - eTimer m_subtitle_sync_timer; + ePtr m_subtitle_sync_timer; void checkSubtitleTiming(); /* radiotext */ - ePtr m_radiotext_parser; - ePtr m_radiotext_updated_connection; - void radioTextUpdated(); + ePtr m_rds_decoder; + ePtr m_rds_decoder_event_connection; + void rdsDecoderEvent(int); + + ePtr m_video_event_connection; + void video_event(struct iTSMPEGDecoder::videoEvent); + struct iTSMPEGDecoder::videoEvent m_videoEventData; }; class eStaticServiceDVBBouquetInformation: public iStaticServiceInformation