]>
Commit | Line | Data |
---|---|---|
1 | // -------------------------------------------------------------------------- | |
2 | // Name: sndpcm.cpp | |
3 | // Purpose: | |
4 | // Date: 08/11/1999 | |
5 | // Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999 | |
6 | // CVSID: $Id$ | |
7 | // wxWindows licence | |
8 | // -------------------------------------------------------------------------- | |
9 | ||
10 | #include "wx/wxprec.h" | |
11 | ||
12 | #ifndef WX_PRECOMP | |
13 | #include "wx/defs.h" | |
14 | #endif | |
15 | ||
16 | #ifdef __BORLANDC__ | |
17 | #pragma hdrstop | |
18 | #endif | |
19 | ||
20 | #include "wx/mmedia/sndbase.h" | |
21 | #include "wx/mmedia/sndpcm.h" | |
22 | ||
23 | wxSoundFormatPcm::wxSoundFormatPcm(wxUint32 srate, wxUint8 bps, | |
24 | wxUint16 nchannels, bool sign, | |
25 | int order) | |
26 | : m_srate(srate), m_bps(bps), m_nchan(nchannels), m_order(order), | |
27 | m_signed(sign) | |
28 | { | |
29 | } | |
30 | ||
31 | wxSoundFormatPcm::~wxSoundFormatPcm() | |
32 | { | |
33 | } | |
34 | ||
35 | void wxSoundFormatPcm::SetSampleRate(wxUint32 srate) | |
36 | { | |
37 | m_srate = srate; | |
38 | } | |
39 | ||
40 | void wxSoundFormatPcm::SetBPS(wxUint8 bps) | |
41 | { | |
42 | m_bps = bps; | |
43 | } | |
44 | ||
45 | void wxSoundFormatPcm::SetChannels(wxUint16 nchannels) | |
46 | { | |
47 | m_nchan = nchannels; | |
48 | } | |
49 | ||
50 | void wxSoundFormatPcm::SetOrder(int order) | |
51 | { | |
52 | m_order = order; | |
53 | } | |
54 | ||
55 | void wxSoundFormatPcm::Signed(bool sign) | |
56 | { | |
57 | m_signed = sign; | |
58 | } | |
59 | ||
60 | wxSoundFormatBase *wxSoundFormatPcm::Clone() const | |
61 | { | |
62 | wxSoundFormatPcm *new_pcm; | |
63 | ||
64 | new_pcm = new wxSoundFormatPcm(); | |
65 | new_pcm->m_srate = m_srate; | |
66 | new_pcm->m_bps = m_bps; | |
67 | new_pcm->m_nchan = m_nchan; | |
68 | new_pcm->m_order = m_order; | |
69 | new_pcm->m_signed= m_signed; | |
70 | ||
71 | return new_pcm; | |
72 | } | |
73 | ||
74 | wxUint32 wxSoundFormatPcm::GetTimeFromBytes(wxUint32 bytes) const | |
75 | { | |
76 | return (bytes / (m_srate * (m_bps / 8) * m_nchan)); | |
77 | } | |
78 | ||
79 | wxUint32 wxSoundFormatPcm::GetBytesFromTime(wxUint32 time) const | |
80 | { | |
81 | return (time * (m_srate * (m_bps / 8) * m_nchan)); | |
82 | } | |
83 | ||
84 | bool wxSoundFormatPcm::operator!=(const wxSoundFormatBase& format) const | |
85 | { | |
86 | wxSoundFormatPcm *format2 = (wxSoundFormatPcm *)&format; | |
87 | ||
88 | if (format.GetType() != wxSOUND_PCM) | |
89 | return true; | |
90 | ||
91 | return ( (m_srate != format2->m_srate) || | |
92 | (m_bps != format2->m_bps) || | |
93 | (m_nchan != format2->m_nchan) || | |
94 | (m_order != format2->m_order) || | |
95 | (m_signed != format2->m_signed) ); | |
96 | } |