aboutsummaryrefslogtreecommitdiffstats
path: root/src/pcm/ChannelsConverter.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-12-02 09:15:54 +0100
committerMax Kellermann <max@duempel.org>2013-12-02 11:21:32 +0100
commit2b44a2c9bd8f9a171a2e998feb14f3c5a1c29381 (patch)
tree3e57bc4eafd8d8c377971201049fc5cafde1905b /src/pcm/ChannelsConverter.cxx
parentaf3b454805b49301b14f2f55f7a99020527bd63a (diff)
downloadmpd-2b44a2c9bd8f9a171a2e998feb14f3c5a1c29381.tar.gz
mpd-2b44a2c9bd8f9a171a2e998feb14f3c5a1c29381.tar.xz
mpd-2b44a2c9bd8f9a171a2e998feb14f3c5a1c29381.zip
pcm/PcmChannels: use struct ConstBuffer
Diffstat (limited to '')
-rw-r--r--src/pcm/ChannelsConverter.cxx48
1 files changed, 15 insertions, 33 deletions
diff --git a/src/pcm/ChannelsConverter.cxx b/src/pcm/ChannelsConverter.cxx
index 5895fb15d..46197b7e0 100644
--- a/src/pcm/ChannelsConverter.cxx
+++ b/src/pcm/ChannelsConverter.cxx
@@ -62,11 +62,8 @@ PcmChannelsConverter::Close()
}
ConstBuffer<void>
-PcmChannelsConverter::Convert(ConstBuffer<void> src, Error &error)
+PcmChannelsConverter::Convert(ConstBuffer<void> src, gcc_unused Error &error)
{
- const void *result = nullptr;
- size_t result_size = 0;
-
switch (format) {
case SampleFormat::UNDEFINED:
case SampleFormat::S8:
@@ -75,41 +72,26 @@ PcmChannelsConverter::Convert(ConstBuffer<void> src, Error &error)
gcc_unreachable();
case SampleFormat::S16:
- result = pcm_convert_channels_16(buffer, dest_channels,
- src_channels,
- (const int16_t *)src.data,
- src.size, &result_size);
- break;
+ return pcm_convert_channels_16(buffer, dest_channels,
+ src_channels,
+ ConstBuffer<int16_t>::FromVoid(src)).ToVoid();
case SampleFormat::S24_P32:
- result = pcm_convert_channels_24(buffer, dest_channels,
- src_channels,
- (const int32_t *)src.data,
- src.size, &result_size);
- break;
+ return pcm_convert_channels_24(buffer, dest_channels,
+ src_channels,
+ ConstBuffer<int32_t>::FromVoid(src)).ToVoid();
case SampleFormat::S32:
- result = pcm_convert_channels_32(buffer, dest_channels,
- src_channels,
- (const int32_t *)src.data,
- src.size, &result_size);
- break;
+ return pcm_convert_channels_32(buffer, dest_channels,
+ src_channels,
+ ConstBuffer<int32_t>::FromVoid(src)).ToVoid();
case SampleFormat::FLOAT:
- result = pcm_convert_channels_float(buffer, dest_channels,
- src_channels,
- (const float *)src.data,
- src.size, &result_size);
- break;
- }
-
- if (result == nullptr) {
- error.Format(pcm_convert_domain,
- "Conversion from %u to %u channels "
- "is not implemented",
- src_channels, dest_channels);
- return nullptr;
+ return pcm_convert_channels_float(buffer, dest_channels,
+ src_channels,
+ ConstBuffer<float>::FromVoid(src)).ToVoid();
}
- return { result, result_size };
+ assert(false);
+ gcc_unreachable();
}