]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mediactrl.h
put html docs in own dir
[wxWidgets.git] / include / wx / mediactrl.h
index 1d629232ad1aa87b57f19b17267b03a42e9cc3d5..4661bde448d484863787395d22380bbc4b94b1be 100644 (file)
@@ -71,7 +71,8 @@ enum wxMediaCtrlPlayerControls
 #define wxMEDIABACKEND_MCI          wxT("wxMCIMediaBackend")
 #define wxMEDIABACKEND_QUICKTIME    wxT("wxQTMediaBackend")
 #define wxMEDIABACKEND_GSTREAMER    wxT("wxGStreamerMediaBackend")
 #define wxMEDIABACKEND_MCI          wxT("wxMCIMediaBackend")
 #define wxMEDIABACKEND_QUICKTIME    wxT("wxQTMediaBackend")
 #define wxMEDIABACKEND_GSTREAMER    wxT("wxGStreamerMediaBackend")
-
+#define wxMEDIABACKEND_REALPLAYER   wxT("wxRealPlayerMediaBackend")
+#define wxMEDIABACKEND_WMP10        wxT("wxWMP10MediaBackend")
 
 // ----------------------------------------------------------------------------
 //
 
 // ----------------------------------------------------------------------------
 //
@@ -150,7 +151,7 @@ public:
     {   Create(parent, winid, location, pos, size, style,
                szBackend, validator, name);                             }
 
     {   Create(parent, winid, location, pos, size, style,
                szBackend, validator, name);                             }
 
-    ~wxMediaCtrl();
+    virtual ~wxMediaCtrl();
 
     bool Create(wxWindow* parent, wxWindowID winid,
                 const wxString& fileName = wxEmptyString,
 
     bool Create(wxWindow* parent, wxWindowID winid,
                 const wxString& fileName = wxEmptyString,
@@ -190,17 +191,14 @@ public:
     wxFileOffset Tell(); //FIXME: This should be const
     wxFileOffset Length(); //FIXME: This should be const
 
     wxFileOffset Tell(); //FIXME: This should be const
     wxFileOffset Length(); //FIXME: This should be const
 
-#if wxABI_VERSION >= 20601 /* 2.6.1+ only */
     double GetPlaybackRate();           //All but MCI & GStreamer
     bool SetPlaybackRate(double dRate); //All but MCI & GStreamer
     double GetPlaybackRate();           //All but MCI & GStreamer
     bool SetPlaybackRate(double dRate); //All but MCI & GStreamer
-#endif
 
 
-#if wxABI_VERSION >= 20602 /* 2.6.2+ only */
     bool Load(const wxURI& location);
     bool Load(const wxURI& location, const wxURI& proxy);
 
     bool Load(const wxURI& location);
     bool Load(const wxURI& location, const wxURI& proxy);
 
-    wxFileOffset GetDownloadProgress();
-    wxFileOffset GetDownloadTotal();
+    wxFileOffset GetDownloadProgress(); // DirectShow only
+    wxFileOffset GetDownloadTotal();    // DirectShow only
 
     double GetVolume();
     bool   SetVolume(double dVolume);
 
     double GetVolume();
     bool   SetVolume(double dVolume);
@@ -213,7 +211,7 @@ public:
     {   return Load(wxURI(fileName));       }
     bool LoadURIWithProxy(const wxString& fileName, const wxString& proxy)
     {   return Load(wxURI(fileName), wxURI(proxy));       }
     {   return Load(wxURI(fileName));       }
     bool LoadURIWithProxy(const wxString& fileName, const wxString& proxy)
     {   return Load(wxURI(fileName), wxURI(proxy));       }
-#endif
+
 protected:
     static wxClassInfo* NextBackend();
 
 protected:
     static wxClassInfo* NextBackend();
 
@@ -223,6 +221,9 @@ protected:
 
     //FIXME:  This is nasty... find a better way to work around
     //inheritance issues
 
     //FIXME:  This is nasty... find a better way to work around
     //inheritance issues
+#if defined(__WXMAC__)
+    virtual void MacVisibilityChanged();
+#endif
 #if defined(__WXMAC__) || defined(__WXCOCOA__)
     friend class wxQTMediaBackend;
 #endif
 #if defined(__WXMAC__) || defined(__WXCOCOA__)
     friend class wxQTMediaBackend;
 #endif
@@ -317,7 +318,8 @@ public:
     virtual wxLongLong GetDownloadTotal()
     {    return 0;                      }
 
     virtual wxLongLong GetDownloadTotal()
     {    return 0;                      }
 
-    virtual void RESERVED8() {}
+    virtual void MacVisibilityChanged()
+    {                                   }
     virtual void RESERVED9() {}
 
     DECLARE_DYNAMIC_CLASS(wxMediaBackend)
     virtual void RESERVED9() {}
 
     DECLARE_DYNAMIC_CLASS(wxMediaBackend)
@@ -342,11 +344,19 @@ typedef void (wxEvtHandler::*wxMediaEventFunction)(wxMediaEvent&);
 #define EVT_MEDIA_FINISHED(winid, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_FINISHED, winid, wxID_ANY, wxMediaEventHandler(fn), (wxObject *) NULL ),
 #define EVT_MEDIA_STOP(winid, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_STOP, winid, wxID_ANY, wxMediaEventHandler(fn), (wxObject *) NULL ),
 
 #define EVT_MEDIA_FINISHED(winid, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_FINISHED, winid, wxID_ANY, wxMediaEventHandler(fn), (wxObject *) NULL ),
 #define EVT_MEDIA_STOP(winid, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_STOP, winid, wxID_ANY, wxMediaEventHandler(fn), (wxObject *) NULL ),
 
-#if wxABI_VERSION >= 20602 /* 2.6.2+ only */
-#   define wxMEDIA_LOADED_ID      13002
-    DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_MEDIA, wxEVT_MEDIA_LOADED,     wxMEDIA_LOADED_ID)
-#   define EVT_MEDIA_LOADED(winid, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_LOADED, winid, wxID_ANY, wxMediaEventHandler(fn), (wxObject *) NULL ),
-#endif
+#define wxMEDIA_LOADED_ID      13002
+DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_MEDIA, wxEVT_MEDIA_LOADED,     wxMEDIA_LOADED_ID)
+#define EVT_MEDIA_LOADED(winid, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_LOADED, winid, wxID_ANY, wxMediaEventHandler(fn), (wxObject *) NULL ),
+
+#define wxMEDIA_STATECHANGED_ID      13003
+#define wxMEDIA_PLAY_ID      13004
+#define wxMEDIA_PAUSE_ID      13005
+DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_MEDIA, wxEVT_MEDIA_STATECHANGED,     wxMEDIA_STATECHANGED_ID)
+DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_MEDIA, wxEVT_MEDIA_PLAY,     wxMEDIA_PLAY_ID)
+DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_MEDIA, wxEVT_MEDIA_PAUSE,     wxMEDIA_PAUSE_ID)
+#define EVT_MEDIA_STATECHANGED(winid, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_STATECHANGED, winid, wxID_ANY, wxMediaEventHandler(fn), (wxObject *) NULL ),
+#define EVT_MEDIA_PLAY(winid, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_PLAY, winid, wxID_ANY, wxMediaEventHandler(fn), (wxObject *) NULL ),
+#define EVT_MEDIA_PAUSE(winid, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_PAUSE, winid, wxID_ANY, wxMediaEventHandler(fn), (wxObject *) NULL ),
 
 // ----------------------------------------------------------------------------
 // common backend base class used by many other backends
 
 // ----------------------------------------------------------------------------
 // common backend base class used by many other backends
@@ -359,11 +369,24 @@ public:
     void QueueEvent(wxEventType evtType);
 
     // notify that the movie playback is finished
     void QueueEvent(wxEventType evtType);
 
     // notify that the movie playback is finished
-    void QueueFinishEvent() { QueueEvent(wxEVT_MEDIA_FINISHED); }
+    void QueueFinishEvent()
+    {
+        QueueEvent(wxEVT_MEDIA_STATECHANGED);
+        QueueEvent(wxEVT_MEDIA_FINISHED);
+    }
 
     // send the stop event and return true if it hasn't been vetoed
     bool SendStopEvent();
 
 
     // send the stop event and return true if it hasn't been vetoed
     bool SendStopEvent();
 
+    // Queue pause event
+    void QueuePlayEvent();
+
+    // Queue pause event
+    void QueuePauseEvent();
+
+    // Queue stop event (no veto)
+    void QueueStopEvent();
+
 protected:
     // call this when the movie size has changed but not because it has just
     // been loaded (in this case, call NotifyMovieLoaded() below)
 protected:
     // call this when the movie size has changed but not because it has just
     // been loaded (in this case, call NotifyMovieLoaded() below)