From ed112737327b6512d908c0acd13789250545a10d Mon Sep 17 00:00:00 2001 From: George Wu Date: Mon, 14 Nov 2016 03:05:59 +0100 Subject: [PATCH] [kawashima] Enabled converting looped HCA audio files. (solves #1) --- src/lib/kawashima/hca/CHcaDecoder.cpp | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/lib/kawashima/hca/CHcaDecoder.cpp b/src/lib/kawashima/hca/CHcaDecoder.cpp index e1fbaec..dbf45e3 100644 --- a/src/lib/kawashima/hca/CHcaDecoder.cpp +++ b/src/lib/kawashima/hca/CHcaDecoder.cpp @@ -2,6 +2,7 @@ #include #include +#include #include "CHcaDecoder.h" #include "HcaNative.h" #include "Magic.h" @@ -657,21 +658,17 @@ KS_RESULT CHcaDecoder::ConvertData(uint8 *pData, uint32 dwAudioDataSize, uint32 uint8 *dataCursor = pData + dwDataCursor; dwAudioDataSize -= dwDataCursor; - if (!_hcaInfo.loopExists) { - KS_RESULT result; - for (uint32 i = 0; i < totalBlockCount; ++i) { - if (processedDataSize >= dwAudioDataSize) { - return KS_ERR_BUFFER_TOO_SMALL; - } - result = ConvertBlock(dataCursor, blockSize); - if (!KS_CALL_SUCCESSFUL(result)) { - return result; - } - processedDataSize += blockSize; - dataCursor += blockSize; + KS_RESULT result; + for (uint32 i = 0; i < totalBlockCount; ++i) { + if (processedDataSize >= dwAudioDataSize) { + return KS_ERR_BUFFER_TOO_SMALL; } - } else { - return KS_ERR_NOT_IMPLEMENTED; + result = ConvertBlock(dataCursor, blockSize); + if (!KS_CALL_SUCCESSFUL(result)) { + return result; + } + processedDataSize += blockSize; + dataCursor += blockSize; } return KS_ERR_OK;