[Scummvm-cvs-logs] SF.net SVN: scummvm:[46842] scummvm/trunk/engines/sci/sfx
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Fri Jan 1 19:57:14 CET 2010
Revision: 46842
http://scummvm.svn.sourceforge.net/scummvm/?rev=46842&view=rev
Author: m_kiewitz
Date: 2010-01-01 18:57:14 +0000 (Fri, 01 Jan 2010)
Log Message:
-----------
SCI/newmusic: set speech soundtype for audio resources played by kDoSound, cmdVolume is supposed to set music and sfx volume only - this whole fixes volume issues in lb2cd and others
Modified Paths:
--------------
scummvm/trunk/engines/sci/sfx/music.cpp
scummvm/trunk/engines/sci/sfx/music.h
scummvm/trunk/engines/sci/sfx/soundcmd.cpp
Modified: scummvm/trunk/engines/sci/sfx/music.cpp
===================================================================
--- scummvm/trunk/engines/sci/sfx/music.cpp 2010-01-01 17:53:37 UTC (rev 46841)
+++ scummvm/trunk/engines/sci/sfx/music.cpp 2010-01-01 18:57:14 UTC (rev 46842)
@@ -333,10 +333,12 @@
delete pSnd->pStreamAud;
pSnd->pStreamAud = Audio::makeLinearInputStream(channelData, track->digitalSampleSize, track->digitalSampleRate,
Audio::Mixer::FLAG_UNSIGNED, 0, 0);
+ pSnd->soundType = Audio::Mixer::kSFXSoundType;
pSnd->hCurrentAud = Audio::SoundHandle();
} else {
// play MIDI track
_mutex.lock();
+ pSnd->soundType = Audio::Mixer::kMusicSoundType;
if (pSnd->pMidiParser == NULL) {
pSnd->pMidiParser = new MidiParser_SCI();
pSnd->pMidiParser->setMidiDriver(_pMidiDrv);
@@ -385,7 +387,7 @@
pSnd->pStreamAud->setNumLoops(loop);
else
pSnd->pStreamAud->setNumLoops(1);
- _pMixer->playInputStream(Audio::Mixer::kSFXSoundType, &pSnd->hCurrentAud,
+ _pMixer->playInputStream(pSnd->soundType, &pSnd->hCurrentAud,
pSnd->pStreamAud, -1, pSnd->volume, 0, false);
} else if (pSnd->pMidiParser) {
_mutex.lock();
@@ -486,10 +488,9 @@
void SciMusic::soundSetMasterVolume(uint16 vol) {
vol = vol & 0xF; // 0..15
vol = vol * Audio::Mixer::kMaxMixerVolume / 0xF;
+ // "master volume" is music and SFX only, speech (audio resources) are supposed to be unaffected
_pMixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, vol);
_pMixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, vol);
- _pMixer->setVolumeForSoundType(Audio::Mixer::kSpeechSoundType, vol);
- _pMixer->setVolumeForSoundType(Audio::Mixer::kPlainSoundType, vol);
}
void SciMusic::printPlayList(Console *con) {
@@ -528,6 +529,8 @@
status = kSoundStopped;
+ soundType = Audio::Mixer::kMusicSoundType;
+
pStreamAud = 0;
pMidiParser = 0;
}
Modified: scummvm/trunk/engines/sci/sfx/music.h
===================================================================
--- scummvm/trunk/engines/sci/sfx/music.h 2010-01-01 17:53:37 UTC (rev 46841)
+++ scummvm/trunk/engines/sci/sfx/music.h 2010-01-01 18:57:14 UTC (rev 46842)
@@ -92,6 +92,8 @@
SoundStatus status;
+ Audio::Mixer::SoundType soundType;
+
#ifndef USE_OLD_MUSIC_FUNCTIONS
//protected:
#endif
Modified: scummvm/trunk/engines/sci/sfx/soundcmd.cpp
===================================================================
--- scummvm/trunk/engines/sci/sfx/soundcmd.cpp 2010-01-01 17:53:37 UTC (rev 46841)
+++ scummvm/trunk/engines/sci/sfx/soundcmd.cpp 2010-01-01 18:57:14 UTC (rev 46842)
@@ -296,6 +296,7 @@
// Found a relevant audio resource, play it
int sampleLen;
newSound->pStreamAud = _audio->getAudioStream(number, 65535, &sampleLen);
+ newSound->soundType = Audio::Mixer::kSpeechSoundType;
} else {
if (newSound->soundRes)
_music->soundInitSnd(newSound);
@@ -590,9 +591,10 @@
_acc = make_reg(0, _state->sfx_getVolume());
#else
- if (value > 0)
- _music->soundSetMasterVolume(obj.toSint16());
- _acc = make_reg(0, _music->soundGetMasterVolume());
+ debugC(2, kDebugLevelSound, "cmdVolume: %d", value);
+ if (value > 0)
+ _music->soundSetMasterVolume(obj.toSint16());
+ _acc = make_reg(0, _music->soundGetMasterVolume());
#endif
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list