]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mediactrl.h
Make wxABI_VERSION default be e.g. 20699
[wxWidgets.git] / include / wx / mediactrl.h
index 4caa45cc70ec98e63b7be7a1cadfabf2bc065864..9646aeed81d6db9b1da8da320c33264162648334 100644 (file)
 #pragma interface "mediactrl.h"
 #endif
 
+#include "wx/defs.h"
+
 // ----------------------------------------------------------------------------
 // Compilation guard
 // ----------------------------------------------------------------------------
+
 #if wxUSE_MEDIACTRL
 
 // ----------------------------------------------------------------------------
@@ -179,14 +182,17 @@ public:
     wxFileOffset Length(); //FIXME: This should be const
 
     //
-    // Unofficial parts of API 
+    // Unofficial parts of API
     //
     //DirectShow/GStreamer only.  Quicktime too, but somewhat buggy...
-    bool Load(const wxURI& location);  
+    bool Load(const wxURI& location);
 
     double GetPlaybackRate();           //All but MCI & GStreamer
     bool SetPlaybackRate(double dRate); //All but MCI & GStreamer
 
+    double GetVolume();                 //DirectShow only
+    bool   SetVolume(double dVolume);   //DirectShow only
+
 protected:
     static wxClassInfo* NextBackend();
 
@@ -267,6 +273,19 @@ public:
     virtual wxMediaState GetState()
     {   return wxMEDIASTATE_STOPPED;    }
 
+    virtual double GetVolume()
+    {   return 0.0;                     }
+    virtual bool SetVolume(double WXUNUSED(dVolume))
+    {   return false;                   }
+
+    virtual void RESERVED3() {}
+    virtual void RESERVED4() {}
+    virtual void RESERVED5() {}
+    virtual void RESERVED6() {}
+    virtual void RESERVED7() {}
+    virtual void RESERVED8() {}
+    virtual void RESERVED9() {}
+
     DECLARE_DYNAMIC_CLASS(wxMediaBackend)
 };
 
@@ -281,9 +300,12 @@ DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_MEDIA, wxEVT_MEDIA_STOP,     wxMEDIA_STO
 //Function type(s) our events need
 typedef void (wxEvtHandler::*wxMediaEventFunction)(wxMediaEvent&);
 
+#define wxMediaEventHandler(func) \
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxMediaEventFunction, &func)
+
 //Macro for usage with message maps
-#define EVT_MEDIA_FINISHED(winid, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_FINISHED, winid, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) (wxMediaEventFunction) & fn, (wxObject *) NULL ),
-#define EVT_MEDIA_STOP(winid, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_STOP, winid, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) (wxMediaEventFunction) & 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 ),
 
 // ----------------------------------------------------------------------------
 // End compilation gaurd