From 3d0a1631ed1eff4c73e175c50ab2e606b720337f Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Mon, 2 Oct 2006 16:18:20 +0000 Subject: [PATCH] Don't cache the best size until we get a non-zero value back from the activeX control. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41566 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/mediactrl_am.cpp | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/msw/mediactrl_am.cpp b/src/msw/mediactrl_am.cpp index eb5701a245..a719a05849 100644 --- a/src/msw/mediactrl_am.cpp +++ b/src/msw/mediactrl_am.cpp @@ -1566,11 +1566,12 @@ wxString wxAMMediaBackend::GetErrorString(HRESULT hrdsv) wxAMMediaBackend::wxAMMediaBackend() :m_pAX(NULL), #ifdef __WXWINCE__ - m_pWMP(NULL) + m_pWMP(NULL), #else m_pAM(NULL), - m_pMP(NULL) + m_pMP(NULL), #endif + m_bestSize(wxDefaultSize) { } @@ -1791,6 +1792,7 @@ bool wxAMMediaBackend::DoLoad(const wxString& location) return false; } + m_bestSize = wxDefaultSize; return true; } @@ -1804,10 +1806,6 @@ bool wxAMMediaBackend::DoLoad(const wxString& location) //--------------------------------------------------------------------------- void wxAMMediaBackend::FinishLoad() { - // Get the original video size - GetAM()->get_ImageSourceWidth((long*)&m_bestSize.x); - GetAM()->get_ImageSourceHeight((long*)&m_bestSize.y); - NotifyMovieLoaded(); } @@ -2142,7 +2140,22 @@ void wxAMMediaBackend::DoGetDownloadProgress(wxLongLong* pLoadProgress, //--------------------------------------------------------------------------- wxSize wxAMMediaBackend::GetVideoSize() const { - return m_bestSize; + if (m_bestSize == wxDefaultSize) + { + wxAMMediaBackend* self = wxConstCast(this, wxAMMediaBackend); + long w = 0; + long h = 0; + + self->GetAM()->get_ImageSourceWidth(&w); + self->GetAM()->get_ImageSourceHeight(&h); + + if (w != 0 && h != 0) + self->m_bestSize.Set(w, h); + else + return wxSize(0,0); + } + + return m_bestSize; } //--------------------------------------------------------------------------- -- 2.45.2