From 67f8b9b345ec81a626a2ff2885f5239f649ef387 Mon Sep 17 00:00:00 2001 From: Daniel Scharrer Date: Tue, 17 Aug 2021 23:21:01 +0200 Subject: [PATCH] Codec: Change out parameter to return value --- src/audio/codec/ADPCM.cpp | 18 +++++++++--------- src/audio/codec/ADPCM.h | 2 +- src/audio/codec/Codec.h | 2 +- src/audio/codec/RAW.cpp | 5 ++--- src/audio/codec/RAW.h | 2 +- src/audio/codec/WAV.cpp | 5 +---- 6 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/audio/codec/ADPCM.cpp b/src/audio/codec/ADPCM.cpp index 1daa517d9f..d2d047eb48 100644 --- a/src/audio/codec/ADPCM.cpp +++ b/src/audio/codec/ADPCM.cpp @@ -132,10 +132,10 @@ aalError CodecADPCM::setPosition(size_t position) { while(i) { char buffer[256]; - size_t nRead; size_t to_read = std::min(i, size_t(256)); - if(aalError error = read(buffer, to_read, nRead)) { - return error; + size_t nRead = read(buffer, to_read); + if(!nRead) { + return AAL_ERROR_FORMAT; } i -= nRead; } @@ -178,10 +178,10 @@ void CodecADPCM::getSample(size_t channel, s8 adpcmSample) { samp1[channel] = s16(pcm_sample); } -aalError CodecADPCM::read(void * buffer, size_t to_read, size_t & read) { +size_t CodecADPCM::read(void * buffer, size_t bufferSize) { - read = 0; - while(read < to_read) { + size_t read = 0; + while(read < bufferSize) { // If prefetched bytes are remaining, put the next one into the buffer if(cache_i < cache_c) { @@ -196,8 +196,8 @@ aalError CodecADPCM::read(void * buffer, size_t to_read, size_t & read) { m_stream->seek(SeekCur, padding); } - if(aalError error = getNextBlock()) { - return error; + if(getNextBlock() != AAL_OK) { + return 0; } } else if(sample_i == 1) { @@ -224,7 +224,7 @@ aalError CodecADPCM::read(void * buffer, size_t to_read, size_t & read) { cache_i = 0; } - return AAL_OK; + return read; } aalError CodecADPCM::getNextBlock() { diff --git a/src/audio/codec/ADPCM.h b/src/audio/codec/ADPCM.h index e582b3f1f4..d9c043d8a2 100644 --- a/src/audio/codec/ADPCM.h +++ b/src/audio/codec/ADPCM.h @@ -67,7 +67,7 @@ class CodecADPCM final : public Codec { void setStream(PakFileHandle * stream) override; aalError setPosition(size_t position) override; - aalError read(void * buffer, size_t to_read, size_t & read) override; + size_t read(void * buffer, size_t bufferSize) override; private: diff --git a/src/audio/codec/Codec.h b/src/audio/codec/Codec.h index 72eed703a9..f0a4e9c89f 100644 --- a/src/audio/codec/Codec.h +++ b/src/audio/codec/Codec.h @@ -64,7 +64,7 @@ class Codec { //! The stream cursor must be at the beginning of waveform data virtual aalError setPosition(size_t position) = 0; - virtual aalError read(void * buffer, size_t to_read, size_t & read) = 0; + virtual size_t read(void * buffer, size_t bufferSize) = 0; }; diff --git a/src/audio/codec/RAW.cpp b/src/audio/codec/RAW.cpp index 83e3e50758..51a6696cae 100644 --- a/src/audio/codec/RAW.cpp +++ b/src/audio/codec/RAW.cpp @@ -68,9 +68,8 @@ aalError CodecRAW::setPosition(size_t position) { return AAL_OK; } -aalError CodecRAW::read(void * buffer, size_t bufferSize, size_t & read) { - read = m_stream->read(buffer, bufferSize); - return AAL_OK; +size_t CodecRAW::read(void * buffer, size_t bufferSize) { + return m_stream->read(buffer, bufferSize); } } // namespace audio diff --git a/src/audio/codec/RAW.h b/src/audio/codec/RAW.h index 827795358d..de3c07fa3c 100644 --- a/src/audio/codec/RAW.h +++ b/src/audio/codec/RAW.h @@ -63,7 +63,7 @@ class CodecRAW final : public Codec { void setStream(PakFileHandle * stream) override; aalError setPosition(size_t position) override; - aalError read(void * buffer, size_t bufferSize, size_t & read) override; + size_t read(void * buffer, size_t bufferSize) override; private: diff --git a/src/audio/codec/WAV.cpp b/src/audio/codec/WAV.cpp index 0fa7ffce39..f8f1becccf 100644 --- a/src/audio/codec/WAV.cpp +++ b/src/audio/codec/WAV.cpp @@ -295,10 +295,7 @@ size_t StreamWAV::read(void * buffer, size_t bufferSize) { size_t count = cursor + bufferSize > outsize ? outsize - cursor : bufferSize; - size_t read = 0; - if(codec->read(buffer, count, read)) { - return 0; - } + size_t read = codec->read(buffer, count); cursor += read;