wxMMedia doc updates
wxMMedia compilation fixes OGL and STC makefile build fixes git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7528 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -5,8 +5,8 @@
|
||||
// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 2000
|
||||
// CVSID: $Id$
|
||||
// --------------------------------------------------------------------------
|
||||
#ifndef _WX_SNDULAW_H
|
||||
#define _WX_SNDULAW_H
|
||||
#ifndef _WX_SNDMSAD_H
|
||||
#define _WX_SNDMSAD_H
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "sndmsad.h"
|
||||
@@ -17,46 +17,52 @@
|
||||
#include "wx/mmedia/sndcodec.h"
|
||||
#include "wx/mmedia/sndbase.h"
|
||||
|
||||
WX_DEFINE_EXPORTED_ARRAY(wxUint16, wxMSAdpcmCoeffs);
|
||||
WX_DEFINE_EXPORTED_ARRAY(wxInt16, wxMSAdpcmCoeffs);
|
||||
|
||||
//
|
||||
// MSADPCM format
|
||||
//
|
||||
class WXDLLEXPORT wxSoundFormatMSAdpcm: public wxSoundFormatBase {
|
||||
public:
|
||||
wxSoundFormatMSAdpcm();
|
||||
~wxSoundFormatMSAdpcm();
|
||||
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 SetSampleRate(wxUint32 srate);
|
||||
wxUint32 GetSampleRate() 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;
|
||||
|
||||
void SetSamplesBlock(wxUint16 sampblock);
|
||||
wxUint16 GetSamplesBlock() const;
|
||||
|
||||
void SetCoefs(wxMSAdpcmCoefs& coefs);
|
||||
wxMSAdpcmCoefs& GetCoefs() const;
|
||||
|
||||
wxSoundFormatType GetType() const { return wxSOUND_ULAW; }
|
||||
wxSoundFormatBase *Clone() const;
|
||||
|
||||
wxUint32 GetTimeFromBytes(wxUint32 bytes) const;
|
||||
wxUint32 GetBytesFromTime(wxUint32 time) const;
|
||||
|
||||
bool operator !=(const wxSoundFormatBase& frmt2) const;
|
||||
|
||||
protected:
|
||||
wxUint32 m_srate;
|
||||
wxMSAdpcmCoefs *m_coefs;
|
||||
protected:
|
||||
wxUint32 m_srate, m_nchannels;
|
||||
wxInt16 **m_coefs;
|
||||
wxUint16 m_ncoefs, m_coefs_len;
|
||||
wxUint16 m_block_size;
|
||||
};
|
||||
|
||||
//
|
||||
// MS ADPCM converter class
|
||||
//
|
||||
class WXDLLEXPORT wxSoundRouterStream;
|
||||
class WXDLLEXPORT wxSoundStreamAdpcm: public wxSoundStreamCodec {
|
||||
class WXDLLEXPORT wxSoundStreamMSAdpcm: public wxSoundStreamCodec {
|
||||
public:
|
||||
wxSoundStreamAdpcm(wxSoundStream& sndio);
|
||||
~wxSoundStreamAdpcm();
|
||||
wxSoundStreamMSAdpcm(wxSoundStream& sndio);
|
||||
~wxSoundStreamMSAdpcm();
|
||||
|
||||
wxSoundStream& Read(void *buffer, wxUint32 len);
|
||||
wxSoundStream& Write(const void *buffer, wxUint32 len);
|
||||
@@ -67,6 +73,32 @@ public:
|
||||
|
||||
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
|
||||
|
Reference in New Issue
Block a user