]> git.saurik.com Git - wxWidgets.git/blame_incremental - contrib/src/mmedia/sndpcm.cpp
added bakefile to build all demos
[wxWidgets.git] / contrib / src / mmedia / sndpcm.cpp
... / ...
CommitLineData
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 "wx/wxprec.h"
13
14#ifndef WX_PRECOMP
15 #include "wx/defs.h"
16#endif
17
18#ifdef __BORLANDC__
19 #pragma hdrstop
20#endif
21
22#include "wx/mmedia/sndbase.h"
23#include "wx/mmedia/sndpcm.h"
24
25wxSoundFormatPcm::wxSoundFormatPcm(wxUint32 srate, wxUint8 bps,
26 wxUint16 nchannels, bool sign,
27 int order)
28 : m_srate(srate), m_bps(bps), m_nchan(nchannels), m_order(order),
29 m_signed(sign)
30{
31}
32
33wxSoundFormatPcm::~wxSoundFormatPcm()
34{
35}
36
37void wxSoundFormatPcm::SetSampleRate(wxUint32 srate)
38{
39 m_srate = srate;
40}
41
42void wxSoundFormatPcm::SetBPS(wxUint8 bps)
43{
44 m_bps = bps;
45}
46
47void wxSoundFormatPcm::SetChannels(wxUint16 nchannels)
48{
49 m_nchan = nchannels;
50}
51
52void wxSoundFormatPcm::SetOrder(int order)
53{
54 m_order = order;
55}
56
57void wxSoundFormatPcm::Signed(bool sign)
58{
59 m_signed = sign;
60}
61
62wxSoundFormatBase *wxSoundFormatPcm::Clone() const
63{
64 wxSoundFormatPcm *new_pcm;
65
66 new_pcm = new wxSoundFormatPcm();
67 new_pcm->m_srate = m_srate;
68 new_pcm->m_bps = m_bps;
69 new_pcm->m_nchan = m_nchan;
70 new_pcm->m_order = m_order;
71 new_pcm->m_signed= m_signed;
72
73 return new_pcm;
74}
75
76wxUint32 wxSoundFormatPcm::GetTimeFromBytes(wxUint32 bytes) const
77{
78 return (bytes / (m_srate * (m_bps / 8) * m_nchan));
79}
80
81wxUint32 wxSoundFormatPcm::GetBytesFromTime(wxUint32 time) const
82{
83 return (time * (m_srate * (m_bps / 8) * m_nchan));
84}
85
86bool wxSoundFormatPcm::operator!=(const wxSoundFormatBase& format) const
87{
88 wxSoundFormatPcm *format2 = (wxSoundFormatPcm *)&format;
89
90 if (format.GetType() != wxSOUND_PCM)
91 return TRUE;
92
93 return ( (m_srate != format2->m_srate) ||
94 (m_bps != format2->m_bps) ||
95 (m_nchan != format2->m_nchan) ||
96 (m_order != format2->m_order) ||
97 (m_signed != format2->m_signed) );
98}