Gnash
0.8.11dev
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
libsound
SoundUtils.h
Go to the documentation of this file.
1
// SoundUtils.h Utilities for handling sound data.
2
//
3
// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
4
// Free Software Foundation, Inc
5
//
6
// This program is free software; you can redistribute it and/or modify
7
// it under the terms of the GNU General Public License as published by
8
// the Free Software Foundation; either version 3 of the License, or
9
// (at your option) any later version.
10
//
11
// This program is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
// GNU General Public License for more details.
15
//
16
// You should have received a copy of the GNU General Public License
17
// along with this program; if not, write to the Free Software
18
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
20
#ifndef GNASH_SOUND_UTILS_H
21
#define GNASH_SOUND_UTILS_H
22
23
#include <algorithm>
24
#include <boost/bind.hpp>
25
#include <boost/cstdint.hpp>
26
27
#include "
SoundInfo.h
"
28
29
namespace
gnash {
30
namespace
sound {
31
33
//
37
template
<
typename
T>
38
inline
void
39
adjustVolume
(
T
*
start
,
T
*
end
,
float
volume
)
40
{
41
std::transform(start, end, start,
42
boost::bind(std::multiplies<float>(), volume,
_1
));
43
}
44
46
//
54
inline
size_t
55
swfToOutSamples
(
const
media::SoundInfo
& sinfo,
size_t
swfSamples,
56
const
size_t
outRate = 44100)
57
{
58
// NOTE: this was tested with inputs:
59
// - isStereo?0 is16bit()?1 sampleRate?11025
60
// - isStereo?0 is16bit()?1 sampleRate?22050
61
// - isStereo?1 is16bit()?1 sampleRate?22050
62
// - isStereo?0 is16bit()?1 sampleRate?44100
63
// - isStereo?1 is16bit()?1 sampleRate?44100
64
//
65
// TODO: test with other sample sizes !
66
return
swfSamples * (outRate / sinfo.
getSampleRate
());
67
}
68
69
}
// namespace sound
70
}
// namespace gnash
71
72
#endif
Generated on Sat Nov 30 2013 06:54:23 for Gnash by
1.8.1.2