dont try to get frontend informations when the eDVBServicePlay is a pvr service
[enigma2.git] / lib / service / iservice.h
index e4127fb9443cf20d795a1d50ddb7a89c345a0e74..dfd066934099ce8694589a62c2538c3365998fdc 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <lib/python/swig.h>
 #include <lib/base/object.h>
+#include <lib/service/event.h>
 #include <string>
 #include <connection.h>
 #include <list>
@@ -172,7 +173,10 @@ public:
        virtual SWIG_VOID(RESULT) getName(const eServiceReference &ref, std::string &SWIG_OUTPUT)=0;
        
                // doesn't need to be implemented, should return -1 then.
-       virtual int getLength(const eServiceReference &ref)=0;
+       virtual int getLength(const eServiceReference &ref);
+       virtual SWIG_VOID(RESULT) getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &SWIG_OUTPUT);
+               // returns true when not implemented
+       virtual bool isPlayable(const eServiceReference &ref, const eServiceReference &ignore);
 };
 
 TEMPLATE_TYPEDEF(ePtr<iStaticServiceInformation>, iStaticServiceInformationPtr);
@@ -220,6 +224,19 @@ public:
 
 TEMPLATE_TYPEDEF(ePtr<iServiceInformation>, iServiceInformationPtr);
 
+class iFrontendStatusInformation: public iObject
+{
+public:
+       enum {
+               bitErrorRate,
+               signalPower,
+               signalQuality
+       };
+       virtual int getFrontendInfo(int w)=0;
+};
+
+TEMPLATE_TYPEDEF(ePtr<iFrontendStatusInformation>, iFrontendStatusInformationPtr);
+
 class iPauseableService: public iObject
 {
 public:
@@ -262,7 +279,6 @@ public:
 
 TEMPLATE_TYPEDEF(ePtr<iAudioTrackSelection>, iAudioTrackSelectionPtr);
 
-
 class iPlayableService: public iObject
 {
        friend class iServiceHandler;
@@ -284,6 +300,7 @@ public:
        virtual SWIG_VOID(RESULT) pause(ePtr<iPauseableService> &SWIG_OUTPUT)=0;
        virtual SWIG_VOID(RESULT) info(ePtr<iServiceInformation> &SWIG_OUTPUT)=0;
        virtual SWIG_VOID(RESULT) audioTracks(ePtr<iAudioTrackSelection> &SWIG_OUTPUT)=0;
+       virtual SWIG_VOID(RESULT) frontendStatusInfo(ePtr<iFrontendStatusInformation> &SWIG_OUTPUT)=0;
 };
 
 TEMPLATE_TYPEDEF(ePtr<iPlayableService>, iPlayableServicePtr);