patch by Pieter Grimmerink: fix order of class definitions to make swig happy
[enigma2.git] / lib / service / iservice.h
index ca84a410aa72a9ecc3d2f15c1ffc88be81d0e1c6..bfdca1ba46c6337a3354ce05aeba28f94e51779b 100644 (file)
@@ -224,7 +224,7 @@ typedef long long pts_t;
           
           Hide the result only if there is another way to check for failure! */
           
-SWIG_TEMPLATE_TYPEDEF(ePtr<eServiceEvent>, eServiceEventPtr);
+class eServiceEvent;
 
 SWIG_IGNORE(iStaticServiceInformation);
 class iStaticServiceInformation: public iObject
@@ -354,7 +354,8 @@ public:
                signalQuality,
                lockState,
                syncState,
-               frontendNumber
+               frontendNumber,
+               signalPowerdB,
        };
 };
 
@@ -367,7 +368,10 @@ class iFrontendInformation: public iFrontendInformation_ENUMS, public iObject
 #endif
 public:
        virtual int getFrontendInfo(int w)=0;
-       virtual PyObject *getFrontendData(bool original=false)=0;
+       virtual PyObject *getFrontendData()=0;
+       virtual PyObject *getFrontendStatus()=0;
+       virtual PyObject *getTransponderData(bool original)=0;
+       virtual PyObject *getAll(bool original)=0; // a sum of getFrontendData/Status/TransponderData
 };
 SWIG_TEMPLATE_TYPEDEF(ePtr<iFrontendInformation>, iFrontendInformationPtr);
 
@@ -422,9 +426,11 @@ struct iAudioTrackInfo
 #ifndef SWIG
        std::string m_description;
        std::string m_language; /* iso639 */
+       int m_pid; /* for association with the stream. */
 #endif
        std::string getDescription() { return m_description; }
        std::string getLanguage() { return m_language; }
+       int getPID() { return m_pid; }
 };
 SWIG_ALLOW_OUTPUT_SIMPLE(iAudioTrackInfo);
 
@@ -439,6 +445,7 @@ public:
        virtual int getNumberOfTracks()=0;
        virtual RESULT selectTrack(unsigned int i)=0;
        virtual SWIG_VOID(RESULT) getTrackInfo(struct iAudioTrackInfo &SWIG_OUTPUT, unsigned int n)=0;
+       virtual int getCurrentTrack()=0;
 };
 SWIG_TEMPLATE_TYPEDEF(ePtr<iAudioTrackSelection>, iAudioTrackSelectionPtr);
 
@@ -480,17 +487,30 @@ public:
 };
 SWIG_TEMPLATE_TYPEDEF(ePtr<iAudioDelay>, iAudioDelayPtr);
 
-SWIG_IGNORE(iRadioText);
-class iRadioText: public iObject
+class iRdsDecoder_ENUMS
 {
 #ifdef SWIG
-       iRadioText();
-       ~iRadioText();
+       iRdsDecoder_ENUMS();
+       ~iRdsDecoder_ENUMS();
 #endif
 public:
-       virtual std::string getRadioText(int x=0)=0;
+       enum { RadioText, RtpText };
 };
-SWIG_TEMPLATE_TYPEDEF(ePtr<iRadioText>, iRadioTextPtr);
+
+SWIG_IGNORE(iRdsDecoder);
+class iRdsDecoder: public iObject, public iRdsDecoder_ENUMS
+{
+#ifdef SWIG
+       iRdsDecoder();
+       ~iRdsDecoder();
+#endif
+public:
+       virtual std::string getText(int x=RadioText)=0;
+       virtual void showRassSlidePicture()=0;
+       virtual void showRassInteractivePic(int page, int subpage)=0;
+       virtual SWIG_PYOBJECT(ePyObject) getRassInteractiveMask()=0;
+};
+SWIG_TEMPLATE_TYPEDEF(ePtr<iRdsDecoder>, iRdsDecoderPtr);
 
 SWIG_IGNORE(iSubserviceList);
 class iSubserviceList: public iObject
@@ -673,13 +693,39 @@ public:
                        /* when cueSheet is implemented */
                evCuesheetChanged,
 
-                       /* when radioText is implemented */
+                       /* when rdsDecoder is implemented */
                evUpdatedRadioText,
+               evUpdatedRtpText,
+
+                       /* Radio Screenshow Support */
+               evUpdatedRassSlidePic,
+               evUpdatedRassInteractivePicMask,
+
+               evVideoSizeChanged,
 
-               evVideoSizeChanged
+               evStopped
        };
 };
 
+SWIG_IGNORE(iStreamableService);
+class iStreamableService: public iObject
+{
+#ifdef SWIG
+       iStreamableService();
+       ~iStreamableService();
+#endif
+public:
+               /* returns a dict:
+                       { "demux": <n>,
+                         "pids": [(x,type),(y,type),(z,type),..],
+                         ...
+                       }
+                       with type being "video", "audio", "pmt", "pat"...
+               */
+       virtual PyObject *getStreamingData()=0;
+};
+SWIG_TEMPLATE_TYPEDEF(ePtr<iStreamableService>, iStreamableServicePtr);
+
 SWIG_IGNORE(iPlayableService);
 class iPlayableService: public iPlayableService_ENUMS, public iObject
 {
@@ -707,7 +753,8 @@ public:
        virtual SWIG_VOID(RESULT) cueSheet(ePtr<iCueSheet> &SWIG_OUTPUT)=0;
        virtual SWIG_VOID(RESULT) subtitle(ePtr<iSubtitleOutput> &SWIG_OUTPUT)=0;
        virtual SWIG_VOID(RESULT) audioDelay(ePtr<iAudioDelay> &SWIG_OUTPUT)=0;
-       virtual SWIG_VOID(RESULT) radioText(ePtr<iRadioText> &SWIG_OUTPUT)=0;
+       virtual SWIG_VOID(RESULT) rdsDecoder(ePtr<iRdsDecoder> &SWIG_OUTPUT)=0;
+       virtual SWIG_VOID(RESULT) stream(ePtr<iStreamableService> &SWIG_OUTPUT)=0;
 };
 SWIG_TEMPLATE_TYPEDEF(ePtr<iPlayableService>, iPlayableServicePtr);
 
@@ -720,14 +767,14 @@ class iRecordableService_ENUMS
 public:
        enum {
                evStart,
-               evStop,
+               evEnd,
                evTunedIn,
                evTuneFailed,
                evRecordRunning,
                evRecordStopped,
                evNewProgramInfo,
-               evRecordFailed
-               /*evDiskFull*/
+               evRecordFailed,
+               evRecordWriteError
        };
        enum {
                NoError=0,
@@ -752,9 +799,11 @@ public:
 #endif
        virtual SWIG_VOID(RESULT) getError(int &SWIG_OUTPUT)=0;
        virtual RESULT prepare(const char *filename, time_t begTime=-1, time_t endTime=-1, int eit_event_id=-1)=0;
+       virtual RESULT prepareStreaming()=0;
        virtual RESULT start()=0;
        virtual RESULT stop()=0;
        virtual SWIG_VOID(RESULT) frontendInfo(ePtr<iFrontendInformation> &SWIG_OUTPUT)=0;
+       virtual SWIG_VOID(RESULT) stream(ePtr<iStreamableService> &SWIG_OUTPUT)=0;
 };
 SWIG_TEMPLATE_TYPEDEF(ePtr<iRecordableService>, iRecordableServicePtr);