]> git.saurik.com Git - wxWidgets.git/blob - utils/wxMMedia2/lib/sndwav.h
Major changes in wxVidXANIM (support for output filtering)
[wxWidgets.git] / utils / wxMMedia2 / lib / sndwav.h
1 // --------------------------------------------------------------------------
2 // Name: sndwav.h
3 // Purpose:
4 // Date: 08/11/1999
5 // Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
6 // CVSID: $Id$
7 // --------------------------------------------------------------------------
8 #ifndef _WX_SNDWAV_H
9 #define _WX_SNDWAV_H
10
11 #ifdef __GNUG__
12 #pragma interface "sndwav.h"
13 #endif
14
15 #include <wx/defs.h>
16 #include <wx/stream.h>
17 #include <wx/datstrm.h>
18 #include "sndbase.h"
19 #include "sndcodec.h"
20 #include "sndfile.h"
21
22 //
23 // WAVE codec
24 //
25
26 class wxSoundWave: public wxSoundFileStream {
27 public:
28 wxSoundWave(wxInputStream& stream, wxSoundStream& io_sound);
29 wxSoundWave(wxOutputStream& stream, wxSoundStream& io_sound);
30 ~wxSoundWave();
31
32 bool CanRead();
33 wxString GetCodecName() const;
34
35 protected:
36 bool PrepareToPlay();
37 bool PrepareToRecord(unsigned long time);
38 bool FinishRecording();
39
40 wxUint32 GetData(void *buffer, wxUint32 len);
41 wxUint32 PutData(const void *buffer, wxUint32 len);
42
43 bool HandleOutputPCM(wxDataInputStream& data, wxUint16 channels,
44 wxUint32 sample_fq, wxUint32 byte_p_sec,
45 wxUint16 byte_p_spl, wxUint16 bits_p_spl);
46 bool HandleOutputG721(wxDataInputStream& data, wxUint16 channels,
47 wxUint32 sample_fq, wxUint32 byte_p_sec,
48 wxUint16 byte_p_spl, wxUint16 bits_p_spl);
49 wxSoundFormatBase *HandleInputPCM(wxDataOutputStream& data);
50 wxSoundFormatBase *HandleInputG72X(wxDataOutputStream& data);
51 };
52
53 #endif