1999-08-14 08:06:35 -04:00
|
|
|
// --------------------------------------------------------------------------
|
|
|
|
// Name: sndbase.cpp
|
|
|
|
// Purpose:
|
|
|
|
// Date: 08/11/1999
|
|
|
|
// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
|
|
|
|
// CVSID: $Id$
|
|
|
|
// --------------------------------------------------------------------------
|
|
|
|
#ifdef __GNUG__
|
|
|
|
#pragma implementation "sndbase.cpp"
|
|
|
|
#endif
|
|
|
|
|
1999-08-17 13:51:33 -04:00
|
|
|
#include <wx/wxprec.h>
|
1999-08-14 08:06:35 -04:00
|
|
|
#include "sndbase.h"
|
|
|
|
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
// wxSoundFormatBase
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
wxSoundFormatBase::wxSoundFormatBase()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
wxSoundFormatBase::~wxSoundFormatBase()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
wxSoundFormatBase *wxSoundFormatBase::Clone() const
|
|
|
|
{
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool wxSoundFormatBase::operator!=(const wxSoundFormatBase& frmt2) const
|
|
|
|
{
|
|
|
|
return (GetType() != frmt2.GetType());
|
|
|
|
}
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
// wxSoundStream
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
wxSoundStream::wxSoundStream()
|
|
|
|
{
|
|
|
|
int i;
|
|
|
|
|
|
|
|
m_sndformat = NULL;
|
|
|
|
m_handler = NULL;
|
|
|
|
m_snderror = wxSOUND_NOERR;
|
|
|
|
m_lastcount = 0;
|
|
|
|
for (i=0;i<2;i++)
|
|
|
|
m_callback[i] = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
wxSoundStream::~wxSoundStream()
|
|
|
|
{
|
|
|
|
if (m_sndformat)
|
|
|
|
delete m_sndformat;
|
|
|
|
}
|
|
|
|
|
|
|
|
// SetSoundFormat returns TRUE when the format can be handled.
|
|
|
|
bool wxSoundStream::SetSoundFormat(const wxSoundFormatBase& format)
|
|
|
|
{
|
|
|
|
if (m_sndformat)
|
|
|
|
delete m_sndformat;
|
|
|
|
|
|
|
|
m_sndformat = format.Clone();
|
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Register a callback for a specified async event.
|
|
|
|
void wxSoundStream::Register(int evt, wxSoundCallback cbk, char *cdata)
|
|
|
|
{
|
|
|
|
int c;
|
|
|
|
|
|
|
|
switch (evt) {
|
|
|
|
case wxSOUND_INPUT:
|
|
|
|
c = 0;
|
|
|
|
break;
|
|
|
|
case wxSOUND_OUTPUT:
|
|
|
|
c = 1;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
m_callback[c] = cbk;
|
|
|
|
m_cdata[c] = cdata;
|
|
|
|
}
|
|
|
|
|
|
|
|
void wxSoundStream::OnSoundEvent(int evt)
|
|
|
|
{
|
|
|
|
int c;
|
|
|
|
|
|
|
|
if (m_handler) {
|
|
|
|
m_handler->OnSoundEvent(evt);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
switch (evt) {
|
|
|
|
case wxSOUND_INPUT:
|
|
|
|
c = 0;
|
|
|
|
break;
|
|
|
|
case wxSOUND_OUTPUT:
|
|
|
|
c = 1;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (m_callback[c])
|
|
|
|
m_callback[c](this, evt, m_cdata[c]);
|
|
|
|
}
|