X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8b5d5223d164a3b7fbacc5e69808cadd25163b1b..3c203a185145a1aa720faf53e7f6fbebb35bce7a:/include/wx/mediactrl.h diff --git a/include/wx/mediactrl.h b/include/wx/mediactrl.h index 78e62fc1ed..f8458d3d25 100644 --- a/include/wx/mediactrl.h +++ b/include/wx/mediactrl.h @@ -26,9 +26,12 @@ #pragma interface "mediactrl.h" #endif +#include "wx/defs.h" + // ---------------------------------------------------------------------------- // Compilation guard // ---------------------------------------------------------------------------- + #if wxUSE_MEDIACTRL // ---------------------------------------------------------------------------- @@ -58,6 +61,7 @@ enum wxMediaState #define wxMEDIABACKEND_DIRECTSHOW wxT("wxAMMediaBackend") #define wxMEDIABACKEND_MCI wxT("wxMCIMediaBackend") #define wxMEDIABACKEND_QUICKTIME wxT("wxQTMediaBackend") +#define wxMEDIABACKEND_GSTREAMER wxT("wxGStreamerMediaBackend") // ---------------------------------------------------------------------------- // @@ -109,7 +113,7 @@ public: class WXDLLIMPEXP_MEDIA wxMediaCtrl : public wxControl { public: - wxMediaCtrl() : m_imp(NULL), m_bLoaded(false), m_bLoop(false) + wxMediaCtrl() : m_imp(NULL), m_bLoaded(false) { } wxMediaCtrl(wxWindow* parent, wxWindowID winid, @@ -120,7 +124,7 @@ public: const wxString& szBackend = wxEmptyString, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxT("mediaCtrl")) - : m_imp(NULL), m_bLoaded(false), m_bLoop(false) + : m_imp(NULL), m_bLoaded(false) { Create(parent, winid, fileName, pos, size, style, szBackend, validator, name); } @@ -132,7 +136,7 @@ public: const wxString& szBackend = wxEmptyString, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxT("mediaCtrl")) - : m_imp(NULL), m_bLoop(false) + : m_imp(NULL), m_bLoaded(false) { Create(parent, winid, location, pos, size, style, szBackend, validator, name); } @@ -169,20 +173,23 @@ public: bool Stop(); bool Load(const wxString& fileName); - bool Load(const wxURI& location); //DirectShow only - void Loop(bool bLoop = true); - bool IsLooped(); wxMediaState GetState(); - double GetPlaybackRate(); //All but MCI - bool SetPlaybackRate(double dRate); //All but MCI - wxFileOffset Seek(wxFileOffset where, wxSeekMode mode = wxFromStart); wxFileOffset Tell(); //FIXME: This should be const wxFileOffset Length(); //FIXME: This should be const + // + // Unofficial parts of API + // + //DirectShow/GStreamer only. Quicktime too, but somewhat buggy... + bool Load(const wxURI& location); + + double GetPlaybackRate(); //All but MCI & GStreamer + bool SetPlaybackRate(double dRate); //All but MCI & GStreamer + protected: static wxClassInfo* NextBackend(); @@ -190,6 +197,8 @@ protected: virtual void DoMoveWindow(int x, int y, int w, int h); wxSize DoGetBestSize() const; + //FIXME: This is nasty... find a better way to work around + //inheritance issues #ifdef __WXMAC__ friend class wxQTMediaBackend; #endif @@ -198,7 +207,6 @@ protected: #endif class wxMediaBackend* m_imp; bool m_bLoaded; - bool m_bLoop; DECLARE_DYNAMIC_CLASS(wxMediaCtrl) }; @@ -252,7 +260,7 @@ public: int WXUNUSED(w), int WXUNUSED(h)) { } virtual wxSize GetVideoSize() const - { return wxSize(); } + { return wxSize(0,0); } virtual double GetPlaybackRate() { return 0.0; } @@ -262,6 +270,16 @@ public: virtual wxMediaState GetState() { return wxMEDIASTATE_STOPPED; } + virtual void RESERVED1() {} + virtual void RESERVED2() {} + 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) }; @@ -276,9 +294,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