X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ecd20d4a916884895dcd8873a9f1156e34f4ac89..58385af01650f2218cff7d64b58140a8aafdf8e0:/include/wx/mediactrl.h diff --git a/include/wx/mediactrl.h b/include/wx/mediactrl.h index 71c804b6b1..4caa45cc70 100644 --- a/include/wx/mediactrl.h +++ b/include/wx/mediactrl.h @@ -58,6 +58,7 @@ enum wxMediaState #define wxMEDIABACKEND_DIRECTSHOW wxT("wxAMMediaBackend") #define wxMEDIABACKEND_MCI wxT("wxMCIMediaBackend") #define wxMEDIABACKEND_QUICKTIME wxT("wxQTMediaBackend") +#define wxMEDIABACKEND_GSTREAMER wxT("wxGStreamerMediaBackend") // ---------------------------------------------------------------------------- // @@ -109,18 +110,18 @@ 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, - const wxString& fileName = wxT(""), + const wxString& fileName = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, - const wxString& szBackend = wxT(""), + 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); } @@ -129,21 +130,21 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, - const wxString& szBackend = wxT(""), + 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); } ~wxMediaCtrl(); bool Create(wxWindow* parent, wxWindowID winid, - const wxString& fileName = wxT(""), + const wxString& fileName = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, - const wxString& szBackend = wxT(""), + const wxString& szBackend = wxEmptyString, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxT("mediaCtrl")); @@ -152,7 +153,7 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, - const wxString& szBackend = wxT(""), + const wxString& szBackend = wxEmptyString, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxT("mediaCtrl")); //DirectShow only @@ -169,20 +170,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 +194,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,9 +204,8 @@ protected: #endif class wxMediaBackend* m_imp; bool m_bLoaded; - bool m_bLoop; - DECLARE_DYNAMIC_CLASS(wxMediaCtrl); + DECLARE_DYNAMIC_CLASS(wxMediaCtrl) }; // ---------------------------------------------------------------------------- @@ -262,7 +267,7 @@ public: virtual wxMediaState GetState() { return wxMEDIASTATE_STOPPED; } - DECLARE_CLASS(wxMediaBackend) + DECLARE_DYNAMIC_CLASS(wxMediaBackend) }; //Event ID to give to our events