aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/sound.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2018-03-12 19:33:55 -0400
committerPaul Gilbert2018-03-12 19:33:55 -0400
commit1fd82c7ca5c17aceb7784608e4d1bf3d1b69e8d4 (patch)
tree13127144d9ce810eb0eb3942b313eed561238120 /engines/xeen/sound.cpp
parent19a91e60d270ae2cc527506c2d6c89eb48845d64 (diff)
downloadscummvm-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.cpp14
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);
}