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:
Guilhem Lavaux
1999-08-29 14:40:11 +00:00
parent a2b8bd5537
commit b83290c3eb
5 changed files with 41 additions and 22 deletions

View File

@@ -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;
} }

View File

@@ -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;
} }

View File

@@ -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();
}; };

View File

@@ -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;

View File

@@ -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);