Merge commit 'origin/translations' into experimental
[enigma2.git] / lib / python / Plugins / Extensions / DVDPlayer / src / servicedvd.h
index ed5d49bd5f48ea0a1557f8daeecc9c21dbce31e7..c751a39413bdee367c299b4e7c6ba174d66b6f92 100644 (file)
@@ -6,15 +6,13 @@
 #include <lib/base/thread.h>
 #include <lib/service/iservice.h>
 
-#define cue
-
 class eSubtitleWidget;
 class gPixmap;
 class eStaticServiceDVDInfo;
 
 class eServiceFactoryDVD: public iServiceHandler
 {
-DECLARE_REF(eServiceFactoryDVD);
+       DECLARE_REF(eServiceFactoryDVD);
 public:
        eServiceFactoryDVD();
        virtual ~eServiceFactoryDVD();
@@ -29,13 +27,10 @@ public:
 };
 
 class eServiceDVD: public iPlayableService, public iPauseableService, public iSeekableService,
-       public iServiceInformation, public iSubtitleOutput, public iServiceKeys, public eThread, public Object
-#ifdef cue
-, public iCueSheet
-#endif
+       public iServiceInformation, public iSubtitleOutput, public iServiceKeys, public iCueSheet, public eThread, public Object
 {
        friend class eServiceFactoryDVD;
-DECLARE_REF(eServiceDVD);
+       DECLARE_REF(eServiceDVD);
 public:
        virtual ~eServiceDVD();
                // not implemented (yet)
@@ -47,11 +42,8 @@ public:
        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; }
-#ifdef cue
+       RESULT streamed(ePtr<iStreamedService> &ptr) { ptr = 0; return -1; }
        RESULT cueSheet(ePtr<iCueSheet> &ptr);
-#else
-       RESULT cueSheet(ePtr<iCueSheet> &ptr) { ptr = 0; return -1; }
-#endif
 
                // iPlayableService
        RESULT connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection);
@@ -76,7 +68,6 @@ public:
        PyObject *getSubtitleList();
        PyObject *getCachedSubtitle();
 
-#if 1
                // iSeekableService
        RESULT getLength(pts_t &len);
        RESULT seekTo(pts_t to);
@@ -85,7 +76,7 @@ public:
        RESULT setTrickmode(int trick=0);
        RESULT isCurrentlySeekable();
        RESULT seekChapter(int chapter);
-#endif
+       RESULT seekTitle(int title);
 
                // iServiceInformation
        RESULT getName(std::string &name);
@@ -93,16 +84,15 @@ public:
        std::string getInfoString(int w);
        virtual PyObject *getInfoObject(int w);
 
-#ifdef cue
                // iCueSheet
        PyObject *getCutList();
        void setCutList(SWIG_PYOBJECT(ePyObject));
        void setCutListEnable(int enable);
-#endif
+
                // 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
@@ -111,7 +101,7 @@ private:
        void thread();
        void thread_finished();
 
-       std::string m_filename;
+       eServiceReference m_ref;
 
        Signal2<void,iPlayableService*,int> m_event;
 
@@ -121,46 +111,24 @@ private:
 
        enum
        {
-               stIdle, stRunning, stStopped,
+               stIdle, stRunning, stMenu, stStopped
        };
 
        int m_state;
        int m_current_trick;
 
-       pts_t m_doSeekTo;
-       int m_seekTitle;
        char m_ddvd_titlestring[96];
 
-       eSocketNotifier m_sn;
+       ePtr<eSocketNotifier> m_sn;
        eFixedMessagePump<int> m_pump;
 
-#ifdef cue
-//     ePtr<eCueSheet> m_cue;
-// 
-//     struct cueEntry
-//     {
-//             pts_t where;
-//             unsigned int what;
-//             
-//             bool operator < (const struct cueEntry &o) const
-//             {
-//                     return where < o.where;
-//             }
-//             cueEntry(const pts_t &where, unsigned int what) :
-//                     where(where), what(what)
-//             {
-//             }
-//     };
-       
-//     std::multiset<cueEntry> m_cue_entries;
-       int m_cuesheet_changed, m_cutlist_enabled;
        pts_t m_cue_pts;
-       
+       struct ddvd_resume m_resume_info;
+
        void loadCuesheet();
        void saveCuesheet();
-       
-//     void cutlistToCuesheet();
-#endif
+
+       int m_width, m_height, m_aspect, m_framerate, m_progressive;
 };
 
 #endif