]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxMMedia2/lib/sndbase.cpp
Removed wxMMedia
[wxWidgets.git] / utils / wxMMedia2 / lib / sndbase.cpp
diff --git a/utils/wxMMedia2/lib/sndbase.cpp b/utils/wxMMedia2/lib/sndbase.cpp
new file mode 100644 (file)
index 0000000..2cfc5c0
--- /dev/null
@@ -0,0 +1,109 @@
+// --------------------------------------------------------------------------
+// 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
+
+#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]);
+}