diff options
author | Paul Gilbert | 2018-03-12 19:33:55 -0400 |
---|---|---|
committer | Paul Gilbert | 2018-03-12 19:33:55 -0400 |
commit | 1fd82c7ca5c17aceb7784608e4d1bf3d1b69e8d4 (patch) | |
tree | 13127144d9ce810eb0eb3942b313eed561238120 /engines/xeen/sound.cpp | |
parent | 19a91e60d270ae2cc527506c2d6c89eb48845d64 (diff) | |
download | scummvm-rg350-1fd82c7ca5c17aceb7784608e4d1bf3d1b69e8d4.tar.gz scummvm-rg350-1fd82c7ca5c17aceb7784608e4d1bf3d1b69e8d4.tar.bz2 scummvm-rg350-1fd82c7ca5c17aceb7784608e4d1bf3d1b69e8d4.zip |
XEEN: Add playVoice method for voice sample playback
Diffstat (limited to 'engines/xeen/sound.cpp')
-rw-r--r-- | engines/xeen/sound.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/engines/xeen/sound.cpp b/engines/xeen/sound.cpp index eb7c0616d4..be15028f42 100644 --- a/engines/xeen/sound.cpp +++ b/engines/xeen/sound.cpp @@ -69,6 +69,20 @@ void Sound::playSound(const Common::String &name, int ccNum, int unused) { playSound(f); } +void Sound::playVoice(const Common::String &name, int ccMode) { + File f; + bool result = (ccMode == -1) ? f.open(name) : f.open(name, ccMode); + if (!result) + error("Could not open sound - %s", name.c_str()); + + stopSound(); + + Common::SeekableReadStream *srcStream = f.readStream(f.size()); + Audio::SeekableAudioStream *stream = Audio::makeVOCStream(srcStream, + Audio::FLAG_UNSIGNED, DisposeAfterUse::YES); + _mixer->playStream(Audio::Mixer::kSpeechSoundType, &_soundHandle, stream); +} + void Sound::stopSound() { _mixer->stopHandle(_soundHandle); } |