diff options
-rw-r--r-- | sword1/animation.cpp | 22 | ||||
-rw-r--r-- | sword2/driver/animation.cpp | 21 |
2 files changed, 28 insertions, 15 deletions
diff --git a/sword1/animation.cpp b/sword1/animation.cpp index 0a07acd627..46d8c59006 100644 --- a/sword1/animation.cpp +++ b/sword1/animation.cpp @@ -22,6 +22,7 @@ #include "common/stdafx.h" #include "common/file.h" #include "sound/vorbis.h" +#include "sound/mp3.h" #include "sword1/animation.h" @@ -130,20 +131,25 @@ bool AnimationState::init(const char *basename) { ticks = _sys->get_msecs(); /* Play audio - TODO: Sync with video?*/ + sndfile = new File; #ifdef USE_VORBIS - // Another TODO: There is no reason that this only allows OGG, and not - // MP3, or any other format the mixer might support one day... is - // there? - sndfile = new File; sprintf(tempFile, "%s.ogg", basename); - if (sndfile->open(tempFile)) { - bgSoundStream = makeVorbisStream(sndfile, sndfile->size()); - _snd->playInputStream(&bgSound, bgSoundStream, false, 255, 0, -1, false); - } + if (sndfile->open(tempFile)) + bgSoundStream = makeVorbisStream(sndfile, sndfile->size()); +#endif +#ifdef USE_MAD + if (!sndfile->isOpen()) { + sprintf(tempFile, "%s.mp3", basename); + if (sndfile->open(tempFile)) + bgSoundStream = makeMP3Stream(sndfile, sndfile->size()); + } #endif + if (sndfile->isOpen()) + _snd->playInputStream(&bgSound, bgSoundStream, false, 255, 0, -1, false); + return true; #else /* USE_MPEG2 */ return false; diff --git a/sword2/driver/animation.cpp b/sword2/driver/animation.cpp index f6f74cd3d7..d0840c691e 100644 --- a/sword2/driver/animation.cpp +++ b/sword2/driver/animation.cpp @@ -31,6 +31,7 @@ #include "common/file.h" #include "sound/vorbis.h" +#include "sound/mp3.h" namespace Sword2 { @@ -136,19 +137,25 @@ bool AnimationState::init(const char *name) { ticks = _vm->_system->get_msecs(); // Play audio + sndfile = new File; #ifdef USE_VORBIS - // TODO: There is no reason that this only allows OGG, and not MP3, or - // any other format the mixer might support one day... is there? - sndfile = new File; sprintf(tempFile, "%s.ogg", name); - if (sndfile->open(tempFile)) { - bgSoundStream = makeVorbisStream(sndfile, sndfile->size()); - _vm->_mixer->playInputStream(&bgSound, bgSoundStream, false, 255, 0, -1, false); - } + if (sndfile->open(tempFile)) + bgSoundStream = makeVorbisStream(sndfile, sndfile->size()); +#endif +#ifdef USE_MAD + if (!sndfile->isOpen()) { + sprintf(tempFile, "%s.mp3", name); + if (sndfile->open(tempFile)) + bgSoundStream = makeMP3Stream(sndfile, sndfile->size()); + } #endif + if (sndfile->isOpen()) + _vm->_mixer->playInputStream(&bgSound, bgSoundStream, false, 255, 0, -1, false); + return true; #else /* USE_MPEG2 */ return false; |