diff --git a/CUETools.Codecs.APE/CUETools.Codecs.APE.cpp b/CUETools.Codecs.APE/CUETools.Codecs.APE.cpp index 62b739d..63df7b1 100644 --- a/CUETools.Codecs.APE/CUETools.Codecs.APE.cpp +++ b/CUETools.Codecs.APE/CUETools.Codecs.APE.cpp @@ -128,7 +128,8 @@ namespace CUETools { namespace Codecs { namespace APE { pcm = gcnew AudioPCMConfig( pAPEDecompress->GetInfo (APE_INFO_BITS_PER_SAMPLE, 0, 0), pAPEDecompress->GetInfo (APE_INFO_CHANNELS, 0, 0), - pAPEDecompress->GetInfo (APE_INFO_SAMPLE_RATE, 0, 0)); + pAPEDecompress->GetInfo (APE_INFO_SAMPLE_RATE, 0, 0), + (AudioPCMConfig::SpeakerConfig)0); // make a buffer to hold 16384 blocks of audio data nBlockAlign = pAPEDecompress->GetInfo (APE_INFO_BLOCK_ALIGN, 0, 0); diff --git a/CUETools.Codecs.FLAC/CUETools.Codecs.FLAC.cpp b/CUETools.Codecs.FLAC/CUETools.Codecs.FLAC.cpp index b3144ab..a7de207 100644 --- a/CUETools.Codecs.FLAC/CUETools.Codecs.FLAC.cpp +++ b/CUETools.Codecs.FLAC/CUETools.Codecs.FLAC.cpp @@ -360,7 +360,8 @@ namespace CUETools { namespace Codecs { namespace FLAC { pcm = gcnew AudioPCMConfig( metadata->data.stream_info.bits_per_sample, metadata->data.stream_info.channels, - metadata->data.stream_info.sample_rate); + metadata->data.stream_info.sample_rate, + (AudioPCMConfig::SpeakerConfig)0); _sampleCount = metadata->data.stream_info.total_samples; } //if (metadata->type == FLAC__METADATA_TYPE_VORBIS_COMMENT) diff --git a/CUETools.Codecs.TTA/CUETools.Codecs.TTA.cpp b/CUETools.Codecs.TTA/CUETools.Codecs.TTA.cpp index 328889c..f9a7e75 100644 --- a/CUETools.Codecs.TTA/CUETools.Codecs.TTA.cpp +++ b/CUETools.Codecs.TTA/CUETools.Codecs.TTA.cpp @@ -72,7 +72,7 @@ namespace TTA { if (WAVE_FORMAT_PCM != _ttaReader->ttahdr.AudioFormat) throw gcnew Exception("floating point format not supported."); - pcm = gcnew AudioPCMConfig((int)_ttaReader->ttahdr.BitsPerSample, (int)_ttaReader->ttahdr.NumChannels, (int)_ttaReader->ttahdr.SampleRate); + pcm = gcnew AudioPCMConfig((int)_ttaReader->ttahdr.BitsPerSample, (int)_ttaReader->ttahdr.NumChannels, (int)_ttaReader->ttahdr.SampleRate, (AudioPCMConfig::SpeakerConfig)0); _sampleCount = _ttaReader->ttahdr.DataLength; } diff --git a/CUETools.Codecs.WavPack/CUETools.Codecs.WavPack.cpp b/CUETools.Codecs.WavPack/CUETools.Codecs.WavPack.cpp index 8ba469b..197baa1 100644 --- a/CUETools.Codecs.WavPack/CUETools.Codecs.WavPack.cpp +++ b/CUETools.Codecs.WavPack/CUETools.Codecs.WavPack.cpp @@ -110,7 +110,8 @@ namespace CUETools { namespace Codecs { namespace WavPack { pcm = gcnew AudioPCMConfig( WavpackGetBitsPerSample(_wpc), WavpackGetNumChannels(_wpc), - (int)WavpackGetSampleRate(_wpc)); + (int)WavpackGetSampleRate(_wpc), + (AudioPCMConfig::SpeakerConfig)WavpackGetChannelMask(_wpc)); _sampleCount = WavpackGetNumSamples(_wpc); _sampleOffset = 0; } @@ -342,8 +343,6 @@ namespace CUETools { namespace Codecs { namespace WavPack { { _settings = settings; - if (_settings->PCM->ChannelCount != 1 && _settings->PCM->ChannelCount != 2) - throw gcnew Exception("Only stereo and mono audio formats are allowed."); if (_settings->PCM->BitsPerSample < 16 || _settings->PCM->BitsPerSample > 24) throw gcnew Exception("Bits per sample must be 16..24."); @@ -474,7 +473,7 @@ namespace CUETools { namespace Codecs { namespace WavPack { config.bits_per_sample = _settings->PCM->BitsPerSample; config.bytes_per_sample = (_settings->PCM->BitsPerSample + 7) / 8; config.num_channels = _settings->PCM->ChannelCount; - config.channel_mask = 5 - _settings->PCM->ChannelCount; + config.channel_mask = (int32_t)_settings->PCM->ChannelMask; config.sample_rate = _settings->PCM->SampleRate; Int32 _compressionMode = _settings->EncoderModeIndex; if (_compressionMode == 0) config.flags |= CONFIG_FAST_FLAG;