]>
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 | // -------------------------------------------------------------------------- | |
8 | #ifdef __GNUG__ | |
9 | #pragma implementation "sndpcm.cpp" | |
10 | #endif | |
11 | ||
12 | #include "sndbase.h" | |
13 | #include "sndpcm.h" | |
14 | ||
15 | ||
16 | wxSoundFormatPcm::wxSoundFormatPcm(wxUint32 srate, wxUint8 bps, | |
17 | wxUint16 nchannels, bool sign, | |
18 | int order) | |
19 | : m_srate(srate), m_bps(bps), m_nchan(nchannels), m_order(order), | |
20 | m_signed(sign) | |
21 | { | |
22 | } | |
23 | ||
24 | wxSoundFormatPcm::~wxSoundFormatPcm() | |
25 | { | |
26 | } | |
27 | ||
28 | void wxSoundFormatPcm::SetSampleRate(wxUint32 srate) | |
29 | { | |
30 | m_srate = srate; | |
31 | } | |
32 | ||
33 | void wxSoundFormatPcm::SetBPS(wxUint8 bps) | |
34 | { | |
35 | m_bps = bps; | |
36 | } | |
37 | ||
38 | void wxSoundFormatPcm::SetChannels(wxUint16 nchannels) | |
39 | { | |
40 | m_nchan = nchannels; | |
41 | } | |
42 | ||
43 | void wxSoundFormatPcm::SetOrder(int order) | |
44 | { | |
45 | m_order = order; | |
46 | } | |
47 | ||
48 | void wxSoundFormatPcm::Signed(bool sign) | |
49 | { | |
50 | m_signed = sign; | |
51 | } | |
52 | ||
53 | wxSoundFormatBase *wxSoundFormatPcm::Clone() const | |
54 | { | |
55 | wxSoundFormatPcm *new_pcm; | |
56 | ||
57 | new_pcm = new wxSoundFormatPcm(); | |
58 | new_pcm->m_srate = m_srate; | |
59 | new_pcm->m_bps = m_bps; | |
60 | new_pcm->m_nchan = m_nchan; | |
61 | new_pcm->m_order = m_order; | |
62 | new_pcm->m_signed= m_signed; | |
63 | ||
64 | return new_pcm; | |
65 | } | |
66 | ||
67 | wxUint32 wxSoundFormatPcm::GetTimeFromBytes(wxUint32 bytes) const | |
68 | { | |
69 | return (bytes / (m_srate * (m_bps / 8) * m_nchan)); | |
70 | } | |
71 | ||
72 | wxUint32 wxSoundFormatPcm::GetBytesFromTime(wxUint32 time) const | |
73 | { | |
74 | return (time * (m_srate * (m_bps / 8) * m_nchan)); | |
75 | } | |
76 | ||
77 | bool wxSoundFormatPcm::operator!=(const wxSoundFormatBase& format) const | |
78 | { | |
79 | wxSoundFormatPcm *format2 = (wxSoundFormatPcm *)&format; | |
80 | ||
81 | if (format.GetType() != wxSOUND_PCM) | |
82 | return TRUE; | |
83 | ||
84 | return ( (m_srate != format2->m_srate) || | |
85 | (m_bps != format2->m_bps) || | |
86 | (m_nchan != format2->m_nchan) || | |
87 | (m_order != format2->m_order) || | |
88 | (m_signed != format2->m_signed) ); | |
89 | } |