aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/sound.cpp
diff options
context:
space:
mode:
authorFlorian Kagerer2009-03-08 23:28:19 +0000
committerFlorian Kagerer2009-03-08 23:28:19 +0000
commit6cb3f665aff572fdbdb12c940ace9c4bfe912138 (patch)
tree67d00c26b63633c7445e6db84cf3a9f7deaed9b1 /engines/kyra/sound.cpp
parent2abfb968a601031e211e01d742f7d78f9b5e8134 (diff)
downloadscummvm-rg350-6cb3f665aff572fdbdb12c940ace9c4bfe912138.tar.gz
scummvm-rg350-6cb3f665aff572fdbdb12c940ace9c4bfe912138.tar.bz2
scummvm-rg350-6cb3f665aff572fdbdb12c940ace9c4bfe912138.zip
LOL: some more work on the text displayer so that it handles longer texts (needed for some library books)
svn-id: r39249
Diffstat (limited to 'engines/kyra/sound.cpp')
-rw-r--r--engines/kyra/sound.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/engines/kyra/sound.cpp b/engines/kyra/sound.cpp
index 47045c21cd..4b4439c1e3 100644
--- a/engines/kyra/sound.cpp
+++ b/engines/kyra/sound.cpp
@@ -115,21 +115,22 @@ int32 Sound::voicePlay(const char *file, uint8 volume, bool isSfx) {
return audioStream->getTotalPlayTime();
}
-void Sound::voicePlayFromList(Common::List<const char*> fileList) {
+uint32 Sound::voicePlayFromList(Common::List<const char*> fileList) {
int h = 0;
while (_mixer->isSoundHandleActive(_soundChannels[h].channelHandle) && h < kNumChannelHandles)
h++;
if (h >= kNumChannelHandles)
- return;
+ return 0;
Audio::AppendableAudioStream *out = Audio::makeAppendableAudioStream(22050, Audio::Mixer::FLAG_AUTOFREE | Audio::Mixer::FLAG_UNSIGNED);
for (Common::List<const char*>::iterator i = fileList.begin(); i != fileList.end(); i++) {
Common::SeekableReadStream *file = _vm->resource()->createReadStream(*i);
- // TODO: Maybe output an warning like "file not found"?
- if (!file)
+ if (!file) {
+ warning("Couldn't load voice file: %s", *i);
continue;
+ }
int size, rate;
uint8 *data = Audio::loadVOCFromStream(*file, size, rate);
@@ -151,6 +152,7 @@ void Sound::voicePlayFromList(Common::List<const char*> fileList) {
_soundChannels[h].file = *fileList.begin();
_mixer->playInputStream(Audio::Mixer::kSpeechSoundType, &_soundChannels[h].channelHandle, out);
+ return out->getTotalPlayTime();
}
void Sound::voiceStop(const char *file) {