⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sndbase.cpp

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 CPP
字号:
// --------------------------------------------------------------------------// Name: sndbase.cpp// Purpose:// Date: 08/11/1999// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999, 2000// CVSID: $Id: sndbase.cpp,v 1.7 2005/09/23 12:47:50 MR Exp $// wxWindows licence// --------------------------------------------------------------------------#include "wx/wxprec.h"#ifndef WX_PRECOMP#include "wx/defs.h"#include "wx/string.h"#include "wx/log.h"#endif#include "wx/mmedia/sndbase.h"// ---------------------------------------------------------------------------// wxSoundFormatBase// ---------------------------------------------------------------------------wxSoundFormatBase::wxSoundFormatBase(){}wxSoundFormatBase::~wxSoundFormatBase(){}wxSoundFormatBase *wxSoundFormatBase::Clone() const{    wxLogFatalError(wxT("In wxSoundFormatBase::Clone() but I should")                    wxT(" not be there"));    return NULL;}bool wxSoundFormatBase::operator!=(const wxSoundFormatBase& frmt2) const{    return (GetType() != frmt2.GetType());}// ---------------------------------------------------------------------------// wxSoundStream// ---------------------------------------------------------------------------wxSoundStream::wxSoundStream(){    int i;        // Reset all variables to their neutral value.    m_sndformat = NULL;    m_handler = NULL;    m_snderror = wxSOUND_NOERROR;    m_lastcount = 0;    for (i=0;i<2;i++)        m_callback[i] = NULL;}wxSoundStream::~wxSoundStream(){  if (m_sndformat)      delete m_sndformat;}// --------------------------------------------------------------------------// SetSoundFormat(const wxSoundFormatBase& format) is one of the most// important function of the wxSoundStream class. It prepares the stream to// receive or send the data in a strict format. Normally, the sound stream// should be ready to accept any format it is asked to manage but in certain// cases, it really cannot: in that case it returns false. To have more// details in the functionnalities of SetSoundFormat see// wxSoundRouterStream::SetSoundFormat()// --------------------------------------------------------------------------bool wxSoundStream::SetSoundFormat(const wxSoundFormatBase& format){    // delete the previous prepared format    if (m_sndformat)      delete m_sndformat;        // create a new one by cloning the format passed in parameter    m_sndformat = format.Clone();    return true;}// --------------------------------------------------------------------------// Register(int evt, ...) registers the callback for a specified async event.// Warning ! Only one callback by event is supported. It means that if you// call twice this function the previous registered callback is absolutely// ignored.// --------------------------------------------------------------------------void wxSoundStream::SetCallback(int evt, wxSoundCallback cbk, void *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;}// --------------------------------------------------------------------------// OnSoundEvent(int evt) is called either when the driver is ready to receive// a new block to play or when the driver has a new recorded buffer. You// must be careful here and try not to spend a lot of time: this is a// real-time call. In the case, an "event handler" was specified previously, // it called him before everything.// --------------------------------------------------------------------------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]);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -