Start xanim only when we are ready to play
Renamed StartPlay in Play Added wxVideoBaseDriver::GetSize git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3521 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -233,8 +233,10 @@ FAIL_WITH(m_output->Write(&signature, 4).LastWrite() != 4, wxSOUND_INVSTRM);
|
||||
pcm->Signed(TRUE);
|
||||
pcm->SetOrder(wxLITTLE_ENDIAN);
|
||||
|
||||
if (!SetSoundFormat(*pcm))
|
||||
if (!SetSoundFormat(*pcm)) {
|
||||
delete pcm;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
delete pcm;
|
||||
}
|
||||
|
@@ -83,9 +83,9 @@ wxFrame *wxVideoCreateFrame(wxVideoBaseDriver *vid_drv)
|
||||
vid_out->DynamicSize(TRUE);
|
||||
frame->Layout();
|
||||
frame->Show(TRUE);
|
||||
wxYield();
|
||||
|
||||
vid_drv->AttachOutput(*vid_out);
|
||||
vid_drv->Play();
|
||||
|
||||
return frame;
|
||||
}
|
||||
|
@@ -67,32 +67,39 @@ protected:
|
||||
public:
|
||||
friend class wxVideoOutput;
|
||||
|
||||
///
|
||||
//
|
||||
wxVideoBaseDriver();
|
||||
///
|
||||
//
|
||||
wxVideoBaseDriver(wxInputStream& str);
|
||||
///
|
||||
//
|
||||
virtual ~wxVideoBaseDriver();
|
||||
|
||||
///
|
||||
|
||||
//
|
||||
virtual bool Play() = 0;
|
||||
//
|
||||
virtual bool Stop() = 0;
|
||||
//
|
||||
virtual bool Pause() = 0;
|
||||
///
|
||||
//
|
||||
virtual bool Resume() = 0;
|
||||
|
||||
///
|
||||
//
|
||||
virtual bool SetVolume(wxUint8 vol) = 0;
|
||||
///
|
||||
//
|
||||
virtual bool Resize(wxUint16 w, wxUint16 h) = 0;
|
||||
//
|
||||
virtual bool GetSize(wxSize& size) const = 0;
|
||||
|
||||
///
|
||||
//
|
||||
virtual bool IsCapable(wxVideoType WXUNUSED(v_type)) { return FALSE; }
|
||||
|
||||
///
|
||||
//
|
||||
virtual void OnFinished() {}
|
||||
|
||||
///
|
||||
//
|
||||
virtual bool AttachOutput(wxVideoOutput& output);
|
||||
///
|
||||
//
|
||||
virtual void DetachOutput();
|
||||
};
|
||||
|
||||
|
@@ -60,13 +60,13 @@ wxVideoXANIM::wxVideoXANIM(wxInputStream& str)
|
||||
wxVideoXANIM::~wxVideoXANIM()
|
||||
{
|
||||
if (m_xanim_started)
|
||||
StopPlay();
|
||||
Stop();
|
||||
delete m_internal;
|
||||
|
||||
wxRemoveFile(m_filename);
|
||||
}
|
||||
|
||||
bool wxVideoXANIM::StartPlay()
|
||||
bool wxVideoXANIM::Play()
|
||||
{
|
||||
if (!m_paused && m_xanim_started)
|
||||
return TRUE;
|
||||
@@ -75,7 +75,8 @@ bool wxVideoXANIM::StartPlay()
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (SendCommand(" ")) {
|
||||
// The movie starts with xanim
|
||||
if (RestartXANIM()) {
|
||||
m_paused = FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
@@ -100,15 +101,17 @@ bool wxVideoXANIM::Resume()
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void wxVideoXANIM::StopPlay()
|
||||
bool wxVideoXANIM::Stop()
|
||||
{
|
||||
if (!m_xanim_started)
|
||||
return;
|
||||
return FALSE;
|
||||
|
||||
SendCommand("q");
|
||||
|
||||
m_xanim_started = FALSE;
|
||||
m_paused = FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool wxVideoXANIM::SetVolume(wxUint8 vol)
|
||||
@@ -127,6 +130,12 @@ bool wxVideoXANIM::Resize(wxUint16 WXUNUSED(w), wxUint16 WXUNUSED(h))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool wxVideoXANIM::GetSize(wxSize& size) const
|
||||
{
|
||||
// Not implemented
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool wxVideoXANIM::IsCapable(wxVideoType v_type)
|
||||
{
|
||||
if (v_type == wxVIDEO_MSAVI || v_type == wxVIDEO_MPEG ||
|
||||
@@ -142,7 +151,7 @@ bool wxVideoXANIM::AttachOutput(wxVideoOutput& out)
|
||||
if (!wxVideoBaseDriver::AttachOutput(out))
|
||||
return FALSE;
|
||||
|
||||
return RestartXANIM();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void wxVideoXANIM::DetachOutput()
|
||||
@@ -229,7 +238,7 @@ bool wxVideoXANIM::RestartXANIM()
|
||||
// wxYield();
|
||||
}
|
||||
|
||||
// m_paused = TRUE;
|
||||
m_paused = FALSE;
|
||||
m_xanim_started = TRUE;
|
||||
|
||||
return TRUE;
|
||||
|
@@ -45,13 +45,14 @@ public:
|
||||
wxVideoXANIM(wxInputStream& str);
|
||||
~wxVideoXANIM();
|
||||
|
||||
bool StartPlay();
|
||||
bool Play();
|
||||
bool Pause();
|
||||
bool Resume();
|
||||
void StopPlay();
|
||||
bool Stop();
|
||||
|
||||
bool SetVolume(wxUint8 vol);
|
||||
bool Resize(wxUint16 w, wxUint16 h);
|
||||
bool GetSize(wxSize& size) const;
|
||||
|
||||
bool IsCapable(wxVideoType v_type);
|
||||
|
||||
|
Reference in New Issue
Block a user