pcm: --disable-dsd also disables the dsd2pcm library

This commit is contained in:
Max Kellermann
2014-09-26 10:52:46 +02:00
parent 052726ed50
commit 3120958a17
3 changed files with 17 additions and 3 deletions

View File

@@ -109,7 +109,9 @@ PcmConvert::Close()
if (enable_resampler)
resampler.Close();
#ifdef ENABLE_DSD
dsd.Reset();
#endif
#ifndef NDEBUG
src_format.Clear();
@@ -120,6 +122,7 @@ PcmConvert::Close()
ConstBuffer<void>
PcmConvert::Convert(ConstBuffer<void> buffer, Error &error)
{
#ifdef ENABLE_DSD
if (src_format.format == SampleFormat::DSD) {
auto s = ConstBuffer<uint8_t>::FromVoid(buffer);
auto d = dsd.ToFloat(src_format.channels, s);
@@ -131,6 +134,7 @@ PcmConvert::Convert(ConstBuffer<void> buffer, Error &error)
buffer = d.ToVoid();
}
#endif
if (enable_resampler) {
buffer = resampler.Resample(buffer, error);

View File

@@ -20,13 +20,17 @@
#ifndef PCM_CONVERT_HXX
#define PCM_CONVERT_HXX
#include "PcmDsd.hxx"
#include "check.h"
#include "PcmBuffer.hxx"
#include "FormatConverter.hxx"
#include "ChannelsConverter.hxx"
#include "GlueResampler.hxx"
#include "AudioFormat.hxx"
#ifdef ENABLE_DSD
#include "PcmDsd.hxx"
#endif
#include <stddef.h>
template<typename T> struct ConstBuffer;
@@ -39,7 +43,9 @@ class Domain;
* conversions.
*/
class PcmConvert {
#ifdef ENABLE_DSD
PcmDsd dsd;
#endif
GluePcmResampler resampler;
PcmFormatConverter format_converter;