add support for markers in bouquets
[enigma2.git] / lib / service / iservice.h
index fed66a290a8d03928e5f6efc0a7c7f5e6f1b7ef6..2c395a9ca55e754879f938d8ad6d49b10a7d720c 100644 (file)
@@ -38,7 +38,8 @@ public:
                flagDirectory=isDirectory|mustDescent|canDescent,
                shouldSort=8,                   // should be ASCII-sorted according to service_name. great for directories.
                hasSortKey=16,          // has a sort key in data[3]. not having a sort key implies 0.
-               sort1=32                                        // sort key is 1 instead of 0
+               sort1=32,                                       // sort key is 1 instead of 0
+               isMarker=64                     // Marker
        };
        int flags; // flags will NOT be compared.
 
@@ -205,6 +206,8 @@ typedef long long pts_t;
           
           Hide the result only if there is another way to check for failure! */
           
+TEMPLATE_TYPEDEF(ePtr<eServiceEvent>, eServiceEventPtr);
+       
 class iStaticServiceInformation: public iObject
 {
 #ifdef SWIG
@@ -226,8 +229,6 @@ public:
 
 TEMPLATE_TYPEDEF(ePtr<iStaticServiceInformation>, iStaticServiceInformationPtr);
 
-TEMPLATE_TYPEDEF(ePtr<eServiceEvent>, eServiceEventPtr);
-
 class iServiceInformation: public iObject
 {
 #ifdef SWIG
@@ -389,6 +390,21 @@ public:
 
 TEMPLATE_TYPEDEF(ePtr<iAudioChannelSelection>, iAudioChannelSelectionPtr);
 
+class iAudioDelay: public iObject
+{
+#ifdef SWIG
+       iAudioDelay();
+       ~iAudioDelay();
+#endif
+public:
+       virtual int getAC3Delay()=0;
+       virtual int getPCMDelay()=0;
+       virtual void setAC3Delay(int)=0;
+       virtual void setPCMDelay(int)=0;
+};
+
+TEMPLATE_TYPEDEF(ePtr<iAudioDelay>, iAudioDelayPtr);
+
 class iSubserviceList: public iObject
 {
 #ifdef SWIG
@@ -493,6 +509,7 @@ public:
        virtual SWIG_VOID(RESULT) timeshift(ePtr<iTimeshiftService> &SWIG_OUTPUT)=0;
        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;
 };
 
 TEMPLATE_TYPEDEF(ePtr<iPlayableService>, iPlayableServicePtr);
@@ -524,7 +541,7 @@ public:
                /* flush changes */
        virtual RESULT flushChanges()=0;
                /* adds a service to a list */
-       virtual RESULT addService(eServiceReference &ref)=0;
+       virtual RESULT addService(eServiceReference &ref, eServiceReference before=eServiceReference())=0;
                /* removes a service from a list */
        virtual RESULT removeService(eServiceReference &ref)=0;
                /* moves a service in a list, only if list suppports a specific sort method. */