]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/media.i
bitwise vs. logical operator
[wxWidgets.git] / wxPython / src / media.i
index d5a210f47adb0bc89894190726657fad60d30e0f..129284aeb090fc587fda8ebd6b9aafb657ddbee5 100644 (file)
@@ -31,8 +31,6 @@
 %pythoncode { wx = _core }
 %pythoncode { __docfilter__ = wx.__DocFilter(globals()) }
 
-%include _media_rename.i
-
 //---------------------------------------------------------------------------
 
 %typemap(in) wxLongLong {
@@ -55,6 +53,21 @@ enum wxMediaState
     wxMEDIASTATE_PLAYING=0
 };
 
+enum wxMediaCtrlPlayerControls
+{
+    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
 {
@@ -65,7 +78,7 @@ public:
 class wxMediaCtrl : public wxControl
 {
 public:
-      wxMediaCtrl()    { wxPyRaiseNotImplemented(); }
+    wxMediaCtrl()    { wxPyRaiseNotImplemented(); }
 
     wxMediaCtrl(wxWindow* , wxWindowID ,
                 const wxString& ,
@@ -76,16 +89,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& ,
@@ -95,26 +98,10 @@ 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; }
@@ -125,10 +112,29 @@ public:
     
     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
 %}
@@ -145,10 +151,21 @@ enum wxMediaState
 };
 
 
+enum wxMediaCtrlPlayerControls
+{
+    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);
 
 //---------------------------------------------------------------------------
 
@@ -185,38 +202,6 @@ public:
     
     %RenameCtor(PreMediaCtrl,  wxMediaCtrl());
 
-//     %extend {
-//         %RenameCtor(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);
-//         }
-//     }
-
-
     bool Create(wxWindow* parent,
                 wxWindowID id=-1,
                 const wxString& fileName = wxPyEmptyString,
@@ -232,16 +217,6 @@ 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();
@@ -250,16 +225,45 @@ public:
     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
+    
+    %property(DownloadProgress, GetDownloadProgress, doc="See `GetDownloadProgress`");
+    %property(DownloadTotal, GetDownloadTotal, doc="See `GetDownloadTotal`");
+    %property(PlaybackRate, GetPlaybackRate, SetPlaybackRate, doc="See `GetPlaybackRate` and `SetPlaybackRate`");
+    %property(State, GetState, doc="See `GetState`");
+    %property(Volume, GetVolume, SetVolume, doc="See `GetVolume` and `SetVolume`");
 };
 
 
 
 %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)
 }    
 
 //---------------------------------------------------------------------------