diff options
author | Robin Watts | 2007-12-24 18:32:18 +0000 |
---|---|---|
committer | Robin Watts | 2007-12-24 18:32:18 +0000 |
commit | 22dca84d30fdbb6b9c2bcd8accdbb6595f89e12d (patch) | |
tree | 4da9464839309d67aa36a1569f517193d27b26dc /backends/platform/ds/arm9/source/cdaudio.cpp | |
parent | be737e074dfd82a00e8cdcbc69f53fe4614e63c2 (diff) | |
download | scummvm-rg350-22dca84d30fdbb6b9c2bcd8accdbb6595f89e12d.tar.gz scummvm-rg350-22dca84d30fdbb6b9c2bcd8accdbb6595f89e12d.tar.bz2 scummvm-rg350-22dca84d30fdbb6b9c2bcd8accdbb6595f89e12d.zip |
ARM version of central ADPCM decoding block for NDS. Define ARM_ADPCM to
enable.
Apparently may not be required as this isn't speed critical - but I've
written it now, so seems a shame to lose it.
svn-id: r29980
Diffstat (limited to 'backends/platform/ds/arm9/source/cdaudio.cpp')
-rw-r--r-- | backends/platform/ds/arm9/source/cdaudio.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/backends/platform/ds/arm9/source/cdaudio.cpp b/backends/platform/ds/arm9/source/cdaudio.cpp index 2b285e782a..9569a820f2 100644 --- a/backends/platform/ds/arm9/source/cdaudio.cpp +++ b/backends/platform/ds/arm9/source/cdaudio.cpp @@ -244,6 +244,11 @@ void update() { playNextBlock(); } +#ifdef ARM_ADPCM +extern "C" void ARM_adcpm(int *block, int len, int stepTableIndex, + int firstSample, s16 *decompressionBuffer); +#endif + void decompressBlock() { int block[2048]; bool loop = false; @@ -294,7 +299,13 @@ void decompressBlock() { return; } } - + +#ifdef ARM_ADPCM + ARM_adpcm(block, waveHeader.fmtExtra, + blockHeader.stepTableIndex, + blockHeader.firstSample, + decompressionBuffer); +#else // First sample is in header decompressionBuffer[0] = blockHeader.firstSample; @@ -387,6 +398,7 @@ void decompressBlock() { } +#endif } void playNextBlock() { |