mirror of
https://github.com/libretro/scummvm.git
synced 2025-04-02 14:51:40 +00:00
TOUCHE: Add generic music functions to wrap MidiPlayer usages.
This is a precursor to adding code within these functions to select between MIDI and external digital music files.
This commit is contained in:
parent
344d6bc2da
commit
8b379a5718
@ -260,7 +260,7 @@ void ToucheEngine::redrawMenu(void *menu) {
|
||||
Graphics::drawRect(_offscreenBuffer, kScreenWidth, 106, 118, 340, 164, 0xF9, 0xF7);
|
||||
switch (menuData->mode) {
|
||||
case kMenuSettingsMode:
|
||||
drawVolumeSlideBar(_offscreenBuffer, kScreenWidth, _midiPlayer->getVolume());
|
||||
drawVolumeSlideBar(_offscreenBuffer, kScreenWidth, getMusicVolume());
|
||||
menuData->buttonsTable[5].data = 0;
|
||||
menuData->buttonsTable[6].data = 0;
|
||||
menuData->buttonsTable[7].data = 0;
|
||||
@ -307,10 +307,10 @@ void ToucheEngine::handleMenuAction(void *menu, int actionId) {
|
||||
_talkTextMode = kTalkModeVoiceAndText;
|
||||
break;
|
||||
case kActionLowerVolume:
|
||||
_midiPlayer->adjustVolume(-16);
|
||||
adjustMusicVolume(-16);
|
||||
break;
|
||||
case kActionUpperVolume:
|
||||
_midiPlayer->adjustVolume(+16);
|
||||
adjustMusicVolume(+16);
|
||||
break;
|
||||
case kActionScrollUpSaves:
|
||||
--_saveLoadCurrentPage;
|
||||
|
@ -610,10 +610,7 @@ void ToucheEngine::res_stopSound() {
|
||||
|
||||
void ToucheEngine::res_loadMusic(int num) {
|
||||
debugC(9, kDebugResource, "ToucheEngine::res_loadMusic() num=%d", num);
|
||||
uint32 size;
|
||||
const uint32 offs = res_getDataOffset(kResourceTypeMusic, num, &size);
|
||||
_fData.seek(offs);
|
||||
_midiPlayer->play(_fData, size, true);
|
||||
startMusic(num);
|
||||
}
|
||||
|
||||
void ToucheEngine::res_loadSpeech(int num) {
|
||||
|
@ -100,7 +100,7 @@ Common::Error ToucheEngine::run() {
|
||||
|
||||
setupOpcodes();
|
||||
|
||||
_midiPlayer = new MidiPlayer;
|
||||
initMusic();
|
||||
|
||||
// Setup mixer
|
||||
syncSoundSettings();
|
||||
@ -120,7 +120,7 @@ Common::Error ToucheEngine::run() {
|
||||
}
|
||||
|
||||
void ToucheEngine::restart() {
|
||||
_midiPlayer->stop();
|
||||
stopMusic();
|
||||
|
||||
_gameState = kGameStateGameLoop;
|
||||
_displayQuitDialog = false;
|
||||
@ -216,7 +216,7 @@ void ToucheEngine::readConfigurationSettings() {
|
||||
_talkTextMode = kTalkModeVoiceOnly;
|
||||
}
|
||||
}
|
||||
_midiPlayer->setVolume(ConfMan.getInt("music_volume"));
|
||||
setMusicVolume(ConfMan.getInt("music_volume"));
|
||||
}
|
||||
|
||||
void ToucheEngine::writeConfigurationSettings() {
|
||||
@ -234,7 +234,7 @@ void ToucheEngine::writeConfigurationSettings() {
|
||||
ConfMan.setBool("subtitles", true);
|
||||
break;
|
||||
}
|
||||
ConfMan.setInt("music_volume", _midiPlayer->getVolume());
|
||||
ConfMan.setInt("music_volume", getMusicVolume());
|
||||
ConfMan.flushToDisk();
|
||||
}
|
||||
|
||||
@ -3307,4 +3307,31 @@ bool ToucheEngine::canSaveGameStateCurrently() {
|
||||
return _gameState == kGameStateGameLoop && _flagsTable[618] == 0 && !_hideInventoryTexts;
|
||||
}
|
||||
|
||||
void ToucheEngine::initMusic() {
|
||||
_midiPlayer = new MidiPlayer;
|
||||
}
|
||||
|
||||
void ToucheEngine::startMusic(int num) {
|
||||
uint32 size;
|
||||
const uint32 offs = res_getDataOffset(kResourceTypeMusic, num, &size);
|
||||
_fData.seek(offs);
|
||||
_midiPlayer->play(_fData, size, true);
|
||||
}
|
||||
|
||||
void ToucheEngine::stopMusic() {
|
||||
_midiPlayer->stop();
|
||||
}
|
||||
|
||||
int ToucheEngine::getMusicVolume() {
|
||||
return _midiPlayer->getVolume();
|
||||
}
|
||||
|
||||
void ToucheEngine::setMusicVolume(int volume) {
|
||||
_midiPlayer->setVolume(volume);
|
||||
}
|
||||
|
||||
void ToucheEngine::adjustMusicVolume(int diff) {
|
||||
_midiPlayer->adjustVolume(diff);
|
||||
}
|
||||
|
||||
} // namespace Touche
|
||||
|
@ -646,6 +646,13 @@ protected:
|
||||
|
||||
MidiPlayer *_midiPlayer;
|
||||
|
||||
void initMusic();
|
||||
void startMusic(int num);
|
||||
void stopMusic();
|
||||
int getMusicVolume();
|
||||
void setMusicVolume(int volume);
|
||||
void adjustMusicVolume(int diff);
|
||||
|
||||
Common::Language _language;
|
||||
Common::RandomSource _rnd;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user