MPD
0.20.15
pcm
ChannelsConverter.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_CHANNELS_CONVERTER_HXX
21
#define MPD_PCM_CHANNELS_CONVERTER_HXX
22
23
#include "
check.h
"
24
#include "
SampleFormat.hxx
"
25
#include "
PcmBuffer.hxx
"
26
27
#ifndef NDEBUG
28
#include <assert.h>
29
#endif
30
31
template
<
typename
T>
struct
ConstBuffer
;
32
36
class
PcmChannelsConverter
{
37
SampleFormat
format;
38
unsigned
src_channels, dest_channels;
39
40
PcmBuffer
buffer;
41
42
public
:
43
#ifndef NDEBUG
44
PcmChannelsConverter
()
45
:format(
SampleFormat
::
UNDEFINED
) {}
46
47
~PcmChannelsConverter
() {
48
assert(format ==
SampleFormat::UNDEFINED
);
49
}
50
#endif
51
61
void
Open
(
SampleFormat
format,
62
unsigned
src_channels,
unsigned
dest_channels);
63
67
void
Close
();
68
77
gcc_pure
78
ConstBuffer<void>
Convert
(
ConstBuffer<void>
src) noexcept;
79
};
80
81
#endif
check.h
ConstBuffer< void >
Definition:
ConstBuffer.hxx:45
PcmChannelsConverter::~PcmChannelsConverter
~PcmChannelsConverter()
Definition:
ChannelsConverter.hxx:47
PcmBuffer.hxx
PcmChannelsConverter::Convert
gcc_pure ConstBuffer< void > Convert(ConstBuffer< void > src) noexcept
Convert a block of PCM data.
PcmBuffer
Manager for a temporary buffer which grows as needed.
Definition:
PcmBuffer.hxx:33
PcmChannelsConverter::PcmChannelsConverter
PcmChannelsConverter()
Definition:
ChannelsConverter.hxx:44
SampleFormat
SampleFormat
Definition:
SampleFormat.hxx:33
SampleFormat.hxx
ConstBuffer
A reference to a memory area that is read-only.
Definition:
FlacPcm.hxx:29
PcmChannelsConverter::Open
void Open(SampleFormat format, unsigned src_channels, unsigned dest_channels)
Opens the object, prepare for Convert().
SampleFormat::UNDEFINED
gcc_pure
#define gcc_pure
Definition:
Compiler.h:116
PcmChannelsConverter
A class that converts samples from one format to another.
Definition:
ChannelsConverter.hxx:36
PcmChannelsConverter::Close
void Close()
Closes the object.
Generated on Thu Jan 11 2018 20:45:11 for MPD by
1.8.14