#pragma interface "mediactrl.h"
#endif
+#include "wx/defs.h"
+
// ----------------------------------------------------------------------------
// Compilation guard
// ----------------------------------------------------------------------------
+
#if wxUSE_MEDIACTRL
// ----------------------------------------------------------------------------
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();
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)
};
//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