diff options
Diffstat (limited to 'engines/sword1/music.cpp')
-rw-r--r-- | engines/sword1/music.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/engines/sword1/music.cpp b/engines/sword1/music.cpp index 67a390802b..ebff7f9929 100644 --- a/engines/sword1/music.cpp +++ b/engines/sword1/music.cpp @@ -31,6 +31,7 @@ #include "sword1/music.h" #include "sound/aiff.h" +#include "sound/flac.h" #include "sound/mixer.h" #include "sound/mp3.h" #include "sound/vorbis.h" @@ -201,7 +202,19 @@ int AiffAudioStream::readBuffer(int16 *buffer, const int numSamples) { bool MusicHandle::play(const char *fileBase, bool loop) { char fileName[30]; stop(); - + +#ifdef USE_FLAC + if (!_audioSource) { + sprintf(fileName, "%s.flac", fileBase); + if (_file.open(fileName)) + _audioSource = Audio::makeFlacStream(&_file, false, 0, 0, loop ? 0 : 1); + } + if (!_audioSource) { + sprintf(fileName, "%s.fla", fileBase); + if (_file.open(fileName)) + _audioSource = Audio::makeFlacStream(&_file, false, 0, 0, loop ? 0 : 1); + } +#endif #ifdef USE_VORBIS if (!_audioSource) { sprintf(fileName, "%s.ogg", fileBase); |