add audioselection, removed democode
[enigma2.git] / lib / service / iservice.h
index 5f861899249dcd43ecb76e63821d887b4f5e970b..376ed02790ab490a28f17a8efbfa6201fc8aec61 100644 (file)
@@ -214,6 +214,24 @@ public:
 
 TEMPLATE_TYPEDEF(ePtr<iSeekableService>, iSeekableServicePtr);
 
+struct iAudioTrackInfo
+{
+       std::string m_description;
+       std::string getDescription() { return m_description; }
+};
+
+SWIG_ALLOW_OUTPUT_SIMPLE(iAudioTrackInfo);
+
+class iAudioTrackSelection: public iObject
+{
+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;
+};
+
+TEMPLATE_TYPEDEF(ePtr<iAudioTrackSelection>, iAudioTrackSelectionPtr);
+
 class iPlayableService: public iObject
 {
        friend class iServiceHandler;
@@ -233,6 +251,7 @@ public:
        virtual SWIG_VOID(RESULT) seek(ePtr<iSeekableService> &SWIG_OUTPUT)=0;
        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;
 };
 
 TEMPLATE_TYPEDEF(ePtr<iPlayableService>, iPlayableServicePtr);
@@ -252,6 +271,8 @@ TEMPLATE_TYPEDEF(ePtr<iRecordableService>, iRecordableServicePtr);
 class iMutableServiceList: public iObject
 {
 public:
+               /* flush changes */
+       virtual RESULT flushChanges()=0;
                /* adds a service to a list */
        virtual RESULT addService(eServiceReference &ref)=0;
                /* removes a service from a list */