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->Signed(TRUE);
|
||||||
pcm->SetOrder(wxLITTLE_ENDIAN);
|
pcm->SetOrder(wxLITTLE_ENDIAN);
|
||||||
|
|
||||||
if (!SetSoundFormat(*pcm))
|
if (!SetSoundFormat(*pcm)) {
|
||||||
|
delete pcm;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
delete pcm;
|
delete pcm;
|
||||||
}
|
}
|
||||||
|
@@ -83,9 +83,9 @@ wxFrame *wxVideoCreateFrame(wxVideoBaseDriver *vid_drv)
|
|||||||
vid_out->DynamicSize(TRUE);
|
vid_out->DynamicSize(TRUE);
|
||||||
frame->Layout();
|
frame->Layout();
|
||||||
frame->Show(TRUE);
|
frame->Show(TRUE);
|
||||||
wxYield();
|
|
||||||
|
|
||||||
vid_drv->AttachOutput(*vid_out);
|
vid_drv->AttachOutput(*vid_out);
|
||||||
|
vid_drv->Play();
|
||||||
|
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
@@ -67,32 +67,39 @@ protected:
|
|||||||
public:
|
public:
|
||||||
friend class wxVideoOutput;
|
friend class wxVideoOutput;
|
||||||
|
|
||||||
///
|
//
|
||||||
wxVideoBaseDriver();
|
wxVideoBaseDriver();
|
||||||
///
|
//
|
||||||
wxVideoBaseDriver(wxInputStream& str);
|
wxVideoBaseDriver(wxInputStream& str);
|
||||||
///
|
//
|
||||||
virtual ~wxVideoBaseDriver();
|
virtual ~wxVideoBaseDriver();
|
||||||
|
|
||||||
///
|
|
||||||
|
//
|
||||||
|
virtual bool Play() = 0;
|
||||||
|
//
|
||||||
|
virtual bool Stop() = 0;
|
||||||
|
//
|
||||||
virtual bool Pause() = 0;
|
virtual bool Pause() = 0;
|
||||||
///
|
//
|
||||||
virtual bool Resume() = 0;
|
virtual bool Resume() = 0;
|
||||||
|
|
||||||
///
|
//
|
||||||
virtual bool SetVolume(wxUint8 vol) = 0;
|
virtual bool SetVolume(wxUint8 vol) = 0;
|
||||||
///
|
//
|
||||||
virtual bool Resize(wxUint16 w, wxUint16 h) = 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 bool IsCapable(wxVideoType WXUNUSED(v_type)) { return FALSE; }
|
||||||
|
|
||||||
///
|
//
|
||||||
virtual void OnFinished() {}
|
virtual void OnFinished() {}
|
||||||
|
|
||||||
///
|
//
|
||||||
virtual bool AttachOutput(wxVideoOutput& output);
|
virtual bool AttachOutput(wxVideoOutput& output);
|
||||||
///
|
//
|
||||||
virtual void DetachOutput();
|
virtual void DetachOutput();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -60,13 +60,13 @@ wxVideoXANIM::wxVideoXANIM(wxInputStream& str)
|
|||||||
wxVideoXANIM::~wxVideoXANIM()
|
wxVideoXANIM::~wxVideoXANIM()
|
||||||
{
|
{
|
||||||
if (m_xanim_started)
|
if (m_xanim_started)
|
||||||
StopPlay();
|
Stop();
|
||||||
delete m_internal;
|
delete m_internal;
|
||||||
|
|
||||||
wxRemoveFile(m_filename);
|
wxRemoveFile(m_filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxVideoXANIM::StartPlay()
|
bool wxVideoXANIM::Play()
|
||||||
{
|
{
|
||||||
if (!m_paused && m_xanim_started)
|
if (!m_paused && m_xanim_started)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@@ -75,7 +75,8 @@ bool wxVideoXANIM::StartPlay()
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SendCommand(" ")) {
|
// The movie starts with xanim
|
||||||
|
if (RestartXANIM()) {
|
||||||
m_paused = FALSE;
|
m_paused = FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -100,15 +101,17 @@ bool wxVideoXANIM::Resume()
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxVideoXANIM::StopPlay()
|
bool wxVideoXANIM::Stop()
|
||||||
{
|
{
|
||||||
if (!m_xanim_started)
|
if (!m_xanim_started)
|
||||||
return;
|
return FALSE;
|
||||||
|
|
||||||
SendCommand("q");
|
SendCommand("q");
|
||||||
|
|
||||||
m_xanim_started = FALSE;
|
m_xanim_started = FALSE;
|
||||||
m_paused = FALSE;
|
m_paused = FALSE;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxVideoXANIM::SetVolume(wxUint8 vol)
|
bool wxVideoXANIM::SetVolume(wxUint8 vol)
|
||||||
@@ -127,6 +130,12 @@ bool wxVideoXANIM::Resize(wxUint16 WXUNUSED(w), wxUint16 WXUNUSED(h))
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool wxVideoXANIM::GetSize(wxSize& size) const
|
||||||
|
{
|
||||||
|
// Not implemented
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
bool wxVideoXANIM::IsCapable(wxVideoType v_type)
|
bool wxVideoXANIM::IsCapable(wxVideoType v_type)
|
||||||
{
|
{
|
||||||
if (v_type == wxVIDEO_MSAVI || v_type == wxVIDEO_MPEG ||
|
if (v_type == wxVIDEO_MSAVI || v_type == wxVIDEO_MPEG ||
|
||||||
@@ -142,7 +151,7 @@ bool wxVideoXANIM::AttachOutput(wxVideoOutput& out)
|
|||||||
if (!wxVideoBaseDriver::AttachOutput(out))
|
if (!wxVideoBaseDriver::AttachOutput(out))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
return RestartXANIM();
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxVideoXANIM::DetachOutput()
|
void wxVideoXANIM::DetachOutput()
|
||||||
@@ -229,7 +238,7 @@ bool wxVideoXANIM::RestartXANIM()
|
|||||||
// wxYield();
|
// wxYield();
|
||||||
}
|
}
|
||||||
|
|
||||||
// m_paused = TRUE;
|
m_paused = FALSE;
|
||||||
m_xanim_started = TRUE;
|
m_xanim_started = TRUE;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@@ -45,13 +45,14 @@ public:
|
|||||||
wxVideoXANIM(wxInputStream& str);
|
wxVideoXANIM(wxInputStream& str);
|
||||||
~wxVideoXANIM();
|
~wxVideoXANIM();
|
||||||
|
|
||||||
bool StartPlay();
|
bool Play();
|
||||||
bool Pause();
|
bool Pause();
|
||||||
bool Resume();
|
bool Resume();
|
||||||
void StopPlay();
|
bool Stop();
|
||||||
|
|
||||||
bool SetVolume(wxUint8 vol);
|
bool SetVolume(wxUint8 vol);
|
||||||
bool Resize(wxUint16 w, wxUint16 h);
|
bool Resize(wxUint16 w, wxUint16 h);
|
||||||
|
bool GetSize(wxSize& size) const;
|
||||||
|
|
||||||
bool IsCapable(wxVideoType v_type);
|
bool IsCapable(wxVideoType v_type);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user