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

📄 sndmsad.h

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 H
字号:
// --------------------------------------------------------------------------// Name: sndmsad(pcm).h// Purpose: MS ADPCM codec// Date: 25/02/2000// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 2000// CVSID: $Id: sndmsad.h,v 1.6 2005/09/23 12:47:04 MR Exp $// License:    wxWindows license// --------------------------------------------------------------------------#ifndef _WX_SNDMSAD_H#define _WX_SNDMSAD_H#include "wx/defs.h"#include "wx/dynarray.h"#include "wx/mmedia/defs.h"#include "wx/mmedia/sndcodec.h"#include "wx/mmedia/sndbase.h"WX_DEFINE_EXPORTED_ARRAY_INT(wxInt16, wxMSAdpcmCoeffs);//// MSADPCM format//class WXDLLIMPEXP_MMEDIA wxSoundFormatMSAdpcm: public wxSoundFormatBase {public:    wxSoundFormatMSAdpcm();    ~wxSoundFormatMSAdpcm();        void SetSampleRate(wxUint32 srate);    wxUint32 GetSampleRate() const;        void SetCoefs(wxInt16 **coefs, wxUint16 ncoefs, wxUint16 coefs_len);    void GetCoefs(wxInt16 **&coefs, wxUint16& ncoefs,                  wxUint16& coefs_len) const;    void SetBlockSize(wxUint16 block_size);    wxUint16 GetBlockSize() const;        void SetChannels(wxUint16 channels);    wxUint16 GetChannels() const;        wxSoundFormatType GetType() const { return wxSOUND_MSADPCM; }    wxSoundFormatBase *Clone() const;        wxUint32 GetTimeFromBytes(wxUint32 bytes) const;    wxUint32 GetBytesFromTime(wxUint32 time) const;        bool operator !=(const wxSoundFormatBase& frmt2) const;protected:    wxUint32 m_srate, m_nchannels;    wxInt16 **m_coefs;    wxUint16 m_ncoefs, m_coefs_len;    wxUint16 m_block_size;};//// MS ADPCM converter class//class WXDLLIMPEXP_MMEDIA wxSoundRouterStream;class WXDLLIMPEXP_MMEDIA wxSoundStreamMSAdpcm: public wxSoundStreamCodec {public:    wxSoundStreamMSAdpcm(wxSoundStream& sndio);    ~wxSoundStreamMSAdpcm();        wxSoundStream& Read(void *buffer, wxUint32 len);    wxSoundStream& Write(const void *buffer, wxUint32 len);        bool SetSoundFormat(const wxSoundFormatBase& format);    wxUint32 GetBestSize() const;protected:    wxSoundRouterStream *m_router;    typedef struct {        wxInt32 predictor;        wxInt16 samp1;        wxInt16 samp2;        wxInt16 coeff[2];        wxInt32 iDelta;    } AdpcmState;    AdpcmState m_state[1];        bool     m_got_header;    bool     m_stereo;    wxInt16  **m_coefs;    wxUint16 m_block_size;    wxUint16 m_ncoefs;    wxUint16 m_next_block;    protected:    wxUint32 DecodeMonoADPCM(const void *in_buffer, void *out_buffer,                             wxUint32 in_len);    wxUint32 DecodeStereoADPCM(const void *in_buffer, void *out_buffer,                               wxUint32 in_len);    void Nibble(wxInt8 nyb,                AdpcmState *state,                wxInt16 **out_buffer);};#endif

⌨️ 快捷键说明

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