Add QuadPiP plugin.
[vuplus_dvbapp] / lib / python / Plugins / Extensions / DVDPlayer / src / servicedvd.h
index d0a6bb3..47e02d1 100644 (file)
@@ -26,7 +26,7 @@ public:
        RESULT offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr);
 };
 
-class eServiceDVD: public iPlayableService, public iPauseableService, public iSeekableService,
+class eServiceDVD: public iPlayableService, public iPauseableService, public iSeekableService, public iAudioTrackSelection,
        public iServiceInformation, public iSubtitleOutput, public iServiceKeys, public iCueSheet, public eThread, public Object
 {
        friend class eServiceFactoryDVD;
@@ -35,15 +35,18 @@ public:
        virtual ~eServiceDVD();
                // not implemented (yet)
        RESULT audioChannel(ePtr<iAudioChannelSelection> &ptr) { ptr = 0; return -1; }
-       RESULT audioTracks(ePtr<iAudioTrackSelection> &ptr) { ptr = 0; return -1; }
+       RESULT audioTracks(ePtr<iAudioTrackSelection> &ptr);
        RESULT frontendInfo(ePtr<iFrontendInformation> &ptr) { ptr = 0; return -1; }
        RESULT subServices(ePtr<iSubserviceList> &ptr) { ptr = 0; return -1; }
        RESULT timeshift(ePtr<iTimeshiftService> &ptr) { ptr = 0; return -1; }
        RESULT audioDelay(ePtr<iAudioDelay> &ptr) { ptr = 0; return -1; }
        RESULT rdsDecoder(ePtr<iRdsDecoder> &ptr) { ptr = 0; return -1; }
        RESULT stream(ePtr<iStreamableService> &ptr) { ptr = 0; return -1; }
+       RESULT streamed(ePtr<iStreamedService> &ptr) { ptr = 0; return -1; }
        RESULT cueSheet(ePtr<iCueSheet> &ptr);
 
+       void setQpipMode(bool value, bool audio) { }
+
                // iPlayableService
        RESULT connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection);
        RESULT start();
@@ -88,10 +91,17 @@ public:
        void setCutList(SWIG_PYOBJECT(ePyObject));
        void setCutListEnable(int enable);
 
-               // iServiceKeys
+                       // iAudioTrackSelection 
+       int getNumberOfTracks();
+       RESULT selectTrack(unsigned int i);
+       RESULT getTrackInfo(struct iAudioTrackInfo &, unsigned int n);
+       int getCurrentTrack();
+
+       // iServiceKeys
        RESULT keyPressed(int key);
+
 private:
-       eServiceDVD(const char *filename);
+       eServiceDVD(eServiceReference ref);
 
        void gotMessage(int); // message from dvdlib
        void gotThreadMessage(const int &); // message from dvd thread
@@ -100,7 +110,7 @@ private:
        void thread();
        void thread_finished();
 
-       std::string m_filename;
+       eServiceReference m_ref;
 
        Signal2<void,iPlayableService*,int> m_event;
 
@@ -118,12 +128,16 @@ private:
 
        char m_ddvd_titlestring[96];
 
-       eSocketNotifier m_sn;
+       ePtr<eSocketNotifier> m_sn;
        eFixedMessagePump<int> m_pump;
 
        pts_t m_cue_pts;
+       struct ddvd_resume m_resume_info;
+
        void loadCuesheet();
        void saveCuesheet();
+
+       int m_width, m_height, m_aspect, m_framerate, m_progressive;
 };
 
 #endif