MPD
0.20.15
pcm
FormatConverter.hxx
Go to the documentation of this file.
1
/*
2
* Copyright 2003-2017 The Music Player Daemon Project
3
* http://www.musicpd.org
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License along
16
* with this program; if not, write to the Free Software Foundation, Inc.,
17
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
*/
19
20
#ifndef MPD_PCM_FORMAT_CONVERTER_HXX
21
#define MPD_PCM_FORMAT_CONVERTER_HXX
22
23
#include "
check.h
"
24
#include "
SampleFormat.hxx
"
25
#include "
PcmBuffer.hxx
"
26
#include "
PcmDither.hxx
"
27
28
#ifndef NDEBUG
29
#include <assert.h>
30
#endif
31
32
template
<
typename
T>
struct
ConstBuffer
;
33
37
class
PcmFormatConverter
{
38
SampleFormat
src_format, dest_format;
39
40
PcmBuffer
buffer;
41
PcmDither
dither;
42
43
public
:
44
#ifndef NDEBUG
45
PcmFormatConverter
()
46
:src_format(
SampleFormat
::
UNDEFINED
),
47
dest_format(
SampleFormat
::
UNDEFINED
) {}
48
49
~PcmFormatConverter
() {
50
assert(src_format ==
SampleFormat::UNDEFINED
);
51
assert(dest_format ==
SampleFormat::UNDEFINED
);
52
}
53
#endif
54
63
void
Open
(
SampleFormat
src_format,
SampleFormat
dest_format);
64
68
void
Close
() noexcept;
69
76
gcc_pure
77
ConstBuffer
<
void
>
Convert
(
ConstBuffer
<
void
> src) noexcept;
78
};
79
80
#endif
check.h
PcmFormatConverter::Convert
gcc_pure ConstBuffer< void > Convert(ConstBuffer< void > src) noexcept
Convert a block of PCM data.
PcmFormatConverter::~PcmFormatConverter
~PcmFormatConverter()
Definition:
FormatConverter.hxx:49
PcmFormatConverter
A class that converts samples from one format to another.
Definition:
FormatConverter.hxx:37
PcmBuffer.hxx
PcmFormatConverter::Close
void Close() noexcept
Closes the object.
PcmBuffer
Manager for a temporary buffer which grows as needed.
Definition:
PcmBuffer.hxx:33
SampleFormat
SampleFormat
Definition:
SampleFormat.hxx:33
SampleFormat.hxx
ConstBuffer
A reference to a memory area that is read-only.
Definition:
FlacPcm.hxx:29
SampleFormat::UNDEFINED
gcc_pure
#define gcc_pure
Definition:
Compiler.h:116
PcmDither
Definition:
PcmDither.hxx:27
PcmDither.hxx
PcmFormatConverter::Open
void Open(SampleFormat src_format, SampleFormat dest_format)
Opens the object, prepare for Convert().
PcmFormatConverter::PcmFormatConverter
PcmFormatConverter()
Definition:
FormatConverter.hxx:45
Generated on Thu Jan 11 2018 20:45:11 for MPD by
1.8.14