]> git.saurik.com Git - wxWidgets.git/blob - utils/wxMMedia/sndwav.h
Drag'n'Drop works in a basic form
[wxWidgets.git] / utils / wxMMedia / sndwav.h
1 // /////////////////////////////////////////////////////////////////////////////
2 // Name: sndwav.h
3 // Purpose: wxMMedia
4 // Author: Guilhem Lavaux
5 // Created: 1997
6 // Updated: February 1998
7 // Copyright: (C) 1997, 1998, Guilhem Lavaux
8 // License: wxWindows license
9 // /////////////////////////////////////////////////////////////////////////////
10 /* Real -*- C++ -*- */
11 #ifndef __SND_wav_H__
12 #define __SND_wav_H__
13 #ifdef __GNUG__
14 #pragma interface
15 #endif
16
17 #include "mmriff.h"
18 #include "sndfile.h"
19
20 ///
21 class wxSndWavCodec : public wxSndFileCodec {
22 ///
23 DECLARE_DYNAMIC_CLASS(wxSndWavCodec)
24 public:
25 ///
26 wxSndWavCodec();
27 ///
28 wxSndWavCodec(wxInputStream& s, bool preload = FALSE, bool seekable = TRUE);
29 ///
30 wxSndWavCodec(wxOutputStream& s, bool seekable = TRUE);
31 ///
32 wxSndWavCodec(const wxString& fname);
33 ///
34 virtual ~wxSndWavCodec();
35
36 virtual bool OnNeedData(char *buf, wxUint32 size);
37 virtual bool OnWriteData(char *buf, wxUint32 size);
38
39 virtual wxUint32 PrepareToPlay();
40 virtual bool PrepareToRecord(wxUint32 file_size);
41
42 virtual void SetFile(wxInputStream& s, bool preload = FALSE,
43 bool seekable = FALSE);
44 virtual void SetFile(wxOutputStream& s,
45 bool seekable = FALSE);
46
47 protected:
48 wxRiffCodec riff_codec;
49 struct {
50 wxUint16 format;
51 wxUint16 channels;
52 wxUint32 sample_fq;
53 wxUint32 byte_p_sec;
54 wxUint16 byte_p_spl;
55 wxUint16 bits_p_spl;
56 } wav_hdr;
57 };
58
59 #endif