]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/media.i
Applied patch #1441370: lib.plot - allow passing in wx.Colour()
[wxWidgets.git] / wxPython / src / media.i
index 03268b6872bd5203178263a9b8bad6aadb1e35b7..da189f93360ef4b148af8d0e29b9ac85169d2706 100644 (file)
@@ -11,7 +11,7 @@
 /////////////////////////////////////////////////////////////////////////////
 
 %define DOCSTRING
-"Classes for a medai player control"
+"Classes for a media player control"
 %enddef
 
 %module(package="wx", docstring=DOCSTRING) media
@@ -55,11 +55,22 @@ enum wxMediaState
     wxMEDIASTATE_PLAYING=0
 };
 
-enum wxMediaTimeFormat
+enum wxMediaCtrlPlayerControls
 {
-    wxMEDIATIMEFORMAT_TIME=0
+    wxMEDIACTRLPLAYERCONTROLS_NONE,
+    wxMEDIACTRLPLAYERCONTROLS_STEP,
+    wxMEDIACTRLPLAYERCONTROLS_VOLUME,
+    wxMEDIACTRLPLAYERCONTROLS_DEFAULT
 };
 
+static wxString wxMEDIABACKEND_DIRECTSHOW(wxEmptyString);
+static wxString wxMEDIABACKEND_MCI       (wxEmptyString);
+static wxString wxMEDIABACKEND_QUICKTIME (wxEmptyString);
+static wxString wxMEDIABACKEND_GSTREAMER (wxEmptyString);
+static wxString wxMEDIABACKEND_REALPLAYER(wxEmptyString);
+static wxString wxMEDIABACKEND_WMP10     (wxEmptyString);
+
+
 class wxMediaEvent : public wxNotifyEvent
 {
 public:
@@ -69,7 +80,7 @@ public:
 class wxMediaCtrl : public wxControl
 {
 public:
-      wxMediaCtrl()    { wxPyRaiseNotImplemented(); }
+    wxMediaCtrl()    { wxPyRaiseNotImplemented(); }
 
     wxMediaCtrl(wxWindow* , wxWindowID ,
                 const wxString& ,
@@ -80,16 +91,6 @@ public:
                 const wxValidator& ,
                 const wxString& ) { wxPyRaiseNotImplemented(); }
 
-    wxMediaCtrl(wxWindow* ,
-                wxWindowID ,
-                const wxURI& ,
-                const wxPoint&,
-                const wxSize& ,
-                long style,
-                const wxString& ,
-                const wxValidator& ,
-                const wxString& ) { wxPyRaiseNotImplemented(); }
-
     bool Create(wxWindow* , wxWindowID ,
                 const wxString& ,
                 const wxPoint& ,
@@ -99,38 +100,43 @@ public:
                 const wxValidator& ,
                 const wxString& ) { return false; }
 
-    bool Create(wxWindow* ,
-                wxWindowID ,
-                const wxURI& ,
-                const wxPoint&,
-                const wxSize& ,
-                long style,
-                const wxString& ,
-                const wxValidator& ,
-                const wxString& ) { return false; }
-    
     bool Play() { return false; }
     bool Pause() { return false; }
     bool Stop() { return false; }
 
-    bool Load(const wxString& fileName) { return false; }
-    bool Load(const wxURI& location) { return false; }
-
-    void Loop(bool bLoop = true) {}
-    bool IsLooped() { return false; }
-
     wxMediaState GetState() { return wxMEDIASTATE_STOPPED; }
 
-    double GetPlaybackRate() { return 0.0; };
+    double GetPlaybackRate()  { return 0.0; }
     bool SetPlaybackRate(double dRate) { return false; }
 
-    bool SetPosition(wxLongLong where) { return false; }
-    wxLongLong GetPosition() { return 0; }
-    wxLongLong GetDuration() { return 0; }
+    wxFileOffset Seek(wxFileOffset where, wxSeekMode mode = wxFromStart)
+    { return 0; }
+    
+    wxFileOffset Tell()    { return 0; }
+    wxFileOffset Length()    { return 0; }
+
+    double GetVolume() { return 0.0; }
+    bool   SetVolume(double dVolume) { return false; }
+
+    bool    ShowPlayerControls(
+        wxMediaCtrlPlayerControls flags = wxMEDIACTRLPLAYERCONTROLS_DEFAULT)
+        { return false; }
+
+    bool Load(const wxString& fileName) { return false; }
+    bool LoadURI(const wxString& fileName) { return false; }
+    bool LoadURIWithProxy(const wxString& fileName, const wxString& proxy) { return false; }
+
+    wxFileOffset GetDownloadProgress() { return 0; }
+    wxFileOffset GetDownloadTotal()    { return 0; }
+    
 };
 
 const wxEventType wxEVT_MEDIA_FINISHED = 0;
 const wxEventType wxEVT_MEDIA_STOP = 0;
+const wxEventType wxEVT_MEDIA_LOADED = 0;
+const wxEventType wxEVT_MEDIA_STATECHANGED = 0;
+const wxEventType wxEVT_MEDIA_PLAY = 0;
+const wxEventType wxEVT_MEDIA_PAUSE = 0;
 
 #endif
 %}
@@ -146,15 +152,22 @@ enum wxMediaState
     wxMEDIASTATE_PLAYING
 };
 
-enum wxMediaTimeFormat
+
+enum wxMediaCtrlPlayerControls
 {
-    wxMEDIATIMEFORMAT_TIME
+    wxMEDIACTRLPLAYERCONTROLS_NONE,
+    wxMEDIACTRLPLAYERCONTROLS_STEP,
+    wxMEDIACTRLPLAYERCONTROLS_VOLUME,
+    wxMEDIACTRLPLAYERCONTROLS_DEFAULT
 };
 
 
-// MAKE_CONST_WXSTRING(MEDIABACKEND_DIRECTSHOW);
-// MAKE_CONST_WXSTRING(MEDIABACKEND_MCI       );
-// MAKE_CONST_WXSTRING(MEDIABACKEND_QUICKTIME );
+MAKE_CONST_WXSTRING(MEDIABACKEND_DIRECTSHOW);
+MAKE_CONST_WXSTRING(MEDIABACKEND_MCI       );
+MAKE_CONST_WXSTRING(MEDIABACKEND_QUICKTIME );
+MAKE_CONST_WXSTRING(MEDIABACKEND_GSTREAMER );
+MAKE_CONST_WXSTRING(MEDIABACKEND_REALPLAYER);
+MAKE_CONST_WXSTRING(MEDIABACKEND_WMP10);
 
 //---------------------------------------------------------------------------
 
@@ -189,39 +202,7 @@ public:
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString& name = wxPyMediaCtrlNameStr);
     
-    %name(PreMediaCtrl) wxMediaCtrl();
-
-    %extend {
-        %name(MediaCtrlFromURI)
-             wxMediaCtrl(wxWindow* parent,
-                         wxWindowID id=-1,
-                         const wxString& location=wxPyEmptyString,
-                         const wxPoint& pos = wxDefaultPosition,
-                         const wxSize& size = wxDefaultSize,
-                         long style = 0,
-                         const wxString& szBackend = wxPyEmptyString,
-                         const wxValidator& validator = wxDefaultValidator,
-                         const wxString& name = wxPyMediaCtrlNameStr)
-        {
-            return new wxMediaCtrl(parent, id, wxURI(location),
-                                   pos, size, style, szBackend, validator, name);
-        }
-
-        bool CreateFromURI(wxWindow* parent,
-                           wxWindowID id=-1,
-                           const wxString& location=wxPyEmptyString,
-                           const wxPoint& pos = wxDefaultPosition,
-                           const wxSize& size = wxDefaultSize,
-                           long style = 0,
-                           const wxString& szBackend = wxPyEmptyString,
-                           const wxValidator& validator = wxDefaultValidator,
-                           const wxString& name = wxPyMediaCtrlNameStr)
-        {
-            return self->Create(parent, id, wxURI(location),
-                                pos, size, style, szBackend, validator, name);
-        }
-    }
-
+    %RenameCtor(PreMediaCtrl,  wxMediaCtrl());
 
     bool Create(wxWindow* parent,
                 wxWindowID id=-1,
@@ -238,34 +219,48 @@ public:
     bool Pause();
     bool Stop();
 
-    bool Load(const wxString& fileName);
-    %extend {
-        bool LoadFromURI(const wxString& location) {
-            return self->Load(wxURI(location));
-        }
-    }
-
-    void Loop(bool bLoop = true);
-    bool IsLooped();
-
     wxMediaState GetState();
 
     double GetPlaybackRate();
     bool SetPlaybackRate(double dRate);
 
-    %name(SetMediaPosition) bool SetPosition(wxLongLong where);
-    %name(GetMediaPosition) wxLongLong GetPosition();
-    %name(GetMediaDuration) wxLongLong GetDuration();
+    wxFileOffset Seek(wxFileOffset where, wxSeekMode mode = wxFromStart);    
+    wxFileOffset Tell();
+    wxFileOffset Length();
+
+    double GetVolume();
+    bool   SetVolume(double dVolume);
+
+    bool    ShowPlayerControls(
+        wxMediaCtrlPlayerControls flags = wxMEDIACTRLPLAYERCONTROLS_DEFAULT);
+
+    bool Load(const wxString& fileName);
+    bool LoadURI(const wxString& fileName);
+    bool LoadURIWithProxy(const wxString& fileName, const wxString& proxy);
+    %pythoncode { LoadFromURI = LoadURI }
+
+    wxFileOffset GetDownloadProgress(); // DirectShow only
+    wxFileOffset GetDownloadTotal();    // DirectShow only
+    
 };
 
 
 
 %constant wxEventType wxEVT_MEDIA_FINISHED;
 %constant wxEventType wxEVT_MEDIA_STOP;
+%constant wxEventType wxEVT_MEDIA_LOADED;
+%constant wxEventType wxEVT_MEDIA_STATECHANGED;
+%constant wxEventType wxEVT_MEDIA_PLAY;
+%constant wxEventType wxEVT_MEDIA_PAUSE;
+
 
 %pythoncode {
-EVT_MEDIA_FINISHED = wx.PyEventBinder( wxEVT_MEDIA_FINISHED, 1)
-EVT_MEDIA_STOP     = wx.PyEventBinder( wxEVT_MEDIA_STOP, 1)
+EVT_MEDIA_FINISHED       = wx.PyEventBinder( wxEVT_MEDIA_FINISHED, 1)
+EVT_MEDIA_STOP           = wx.PyEventBinder( wxEVT_MEDIA_STOP, 1)
+EVT_MEDIA_LOADED         = wx.PyEventBinder( wxEVT_MEDIA_LOADED, 1)
+EVT_MEDIA_STATECHANGED   = wx.PyEventBinder( wxEVT_MEDIA_STATECHANGED, 1)
+EVT_MEDIA_PLAY           = wx.PyEventBinder( wxEVT_MEDIA_PLAY, 1)
+EVT_MEDIA_PAUSE          = wx.PyEventBinder( wxEVT_MEDIA_PAUSE, 1)
 }    
 
 //---------------------------------------------------------------------------