diff options
Diffstat (limited to 'engines/kyra/sound_towns.cpp')
-rw-r--r-- | engines/kyra/sound_towns.cpp | 100 |
1 files changed, 50 insertions, 50 deletions
diff --git a/engines/kyra/sound_towns.cpp b/engines/kyra/sound_towns.cpp index 725dedae3f..65ab4f31ef 100644 --- a/engines/kyra/sound_towns.cpp +++ b/engines/kyra/sound_towns.cpp @@ -37,13 +37,13 @@ SoundTowns::SoundTowns(KyraEngine_v1 *vm, Audio::Mixer *mixer) : Sound(vm, mixer), _lastTrack(-1), _musicTrackData(0), _sfxFileData(0), _cdaPlaying(0), _sfxFileIndex((uint)-1), _musicFadeTable(0), _sfxWDTable(0), _sfxBTTable(0), _sfxChannel(0x46), _currentResourceSet(0) { memset(&_resInfo, 0, sizeof(_resInfo)); - _driver = new TownsEuphonyDriver(_mixer); + _player = new EuphonyPlayer(_mixer); } SoundTowns::~SoundTowns() { g_system->getAudioCDManager()->stop(); haltTrack(); - delete _driver; + delete _player; delete[] _musicTrackData; delete[] _sfxFileData; for (int i = 0; i < 3; i++) @@ -58,15 +58,15 @@ bool SoundTowns::init() { _sfxBTTable = _vm->staticres()->loadRawData(k1TownsSFXbtTable, unused); _musicTrackData = new uint8[50570]; - if (!_driver->init()) + if (!_player->init()) return false; if (!loadInstruments()) return false; - _driver->intf()->callback(68); - _driver->intf()->callback(70, 0x33); - _driver->setOutputVolume(1, 118, 118); + /*_player->driver()->intf()->callback(68); + _player->driver()->intf()->callback(70, 0x33);*/ + _player->driver()->setOutputVolume(1, 118, 118); return true; } @@ -93,7 +93,7 @@ void SoundTowns::playTrack(uint8 track) { beginFadeOut(); if (_musicEnabled == 2 && trackNum != -1) { - _driver->setOutputVolume(1, 118, 118); + _player->driver()->setOutputVolume(1, 118, 118); g_system->getAudioCDManager()->play(trackNum + 1, loop ? -1 : 1, 0, 0); g_system->getAudioCDManager()->updateCD(); _cdaPlaying = true; @@ -112,12 +112,12 @@ void SoundTowns::haltTrack() { _cdaPlaying = false; for (int i = 0; i < 6; i++) - _driver->chanVolume(i, 0); + _player->driver()->channelVolume(i, 0); for (int i = 0x40; i < 0x46; i++) - _driver->chanVolume(i, 0); + _player->driver()->channelVolume(i, 0); for (int i = 0; i < 32; i++) - _driver->configChan_enable(i, 0); - _driver->stopParser(); + _player->configPart_enable(i, 0); + _player->stop(); } void SoundTowns::initAudioResourceInfo(int set, void *info) { @@ -179,11 +179,11 @@ void SoundTowns::playSoundEffect(uint8 track, uint8) { if (offset == -1) return; - if (!_driver->soundEffectIsPlaying(_sfxChannel ^ 1)) { + if (!_player->driver()->soundEffectIsPlaying(_sfxChannel ^ 1)) { _sfxChannel ^= 1; - } else if (_driver->soundEffectIsPlaying(_sfxChannel)) { + } else if (_player->driver()->soundEffectIsPlaying(_sfxChannel)) { _sfxChannel ^= 1; - _driver->stopSoundEffect(_sfxChannel); + _player->driver()->stopSoundEffect(_sfxChannel); } uint32 *sfxHeader = (uint32 *)(fileBody + offset); @@ -221,57 +221,57 @@ void SoundTowns::playSoundEffect(uint8 track, uint8) { } } - _driver->chanVolume(_sfxChannel, 127); - _driver->chanPanPos(_sfxChannel, 0x40); - _driver->chanPitch(_sfxChannel, 0); - _driver->playSoundEffect(_sfxChannel, note, 127, sfxPlaybackBuffer); + _player->driver()->channelVolume(_sfxChannel, 127); + _player->driver()->channelPan(_sfxChannel, 0x40); + _player->driver()->channelPitch(_sfxChannel, 0); + _player->driver()->playSoundEffect(_sfxChannel, note, 127, sfxPlaybackBuffer); delete[] sfxPlaybackBuffer; } void SoundTowns::updateVolumeSettings() { - if (!_driver) + if (!_player) return; bool mute = false; - _driver->setSoundEffectVolume(ConfMan.getInt("sfx_volume")); + _player->driver()->setSoundEffectVolume(ConfMan.getInt("sfx_volume")); if (ConfMan.hasKey("mute")) mute = ConfMan.getBool("mute"); - _driver->setMusicVolume((mute ? 0 : ConfMan.getInt("music_volume"))); - _driver->setSoundEffectVolume((mute ? 0 : ConfMan.getInt("sfx_volume"))); + _player->driver()->setMusicVolume((mute ? 0 : ConfMan.getInt("music_volume"))); + _player->driver()->setSoundEffectVolume((mute ? 0 : ConfMan.getInt("sfx_volume"))); } void SoundTowns::stopAllSoundEffects() { - _driver->chanVolume(0x46, 0); - _driver->chanVolume(0x47, 0); - _driver->stopSoundEffect(0x46); - _driver->stopSoundEffect(0x47); + _player->driver()->channelVolume(0x46, 0); + _player->driver()->channelVolume(0x47, 0); + _player->driver()->stopSoundEffect(0x46); + _player->driver()->stopSoundEffect(0x47); _sfxChannel = 0x46; } void SoundTowns::beginFadeOut() { if (_cdaPlaying) { for (int i = 118; i > 103; i--) { - _driver->setOutputVolume(1, i, i); + _player->driver()->setOutputVolume(1, i, i); _vm->delay(2 * _vm->tickLength()); } for (int i = 103; i > 83; i -= 2) { - _driver->setOutputVolume(1, i, i); + _player->driver()->setOutputVolume(1, i, i); _vm->delay(2 * _vm->tickLength()); } for (int i = 83; i > 58; i -= 2) { - _driver->setOutputVolume(1, i, i); + _player->driver()->setOutputVolume(1, i, i); _vm->delay(_vm->tickLength()); } for (int i = 58; i > 0; i--) { - _driver->setOutputVolume(1, i, i); + _player->driver()->setOutputVolume(1, i, i); _vm->delay(1); } - _driver->setOutputVolume(1, 0, 0); + _player->driver()->setOutputVolume(1, 0, 0); } else { if (_lastTrack == -1) @@ -292,9 +292,9 @@ void SoundTowns::beginFadeOut() { for (int i = 0; i < 12; i++) { for (int ii = 0; ii < 6; ii++) - _driver->chanVolume(ii, fadeVolCur[ii]); + _player->driver()->channelVolume(ii, fadeVolCur[ii]); for (int ii = 0x40; ii < 0x46; ii++) - _driver->chanVolume(ii, fadeVolCur[ii - 0x3A]); + _player->driver()->channelVolume(ii, fadeVolCur[ii - 0x3A]); for (int ii = 0; ii < 6; ii++) { fadeVolCur[ii] -= fadeVolStep[ii]; @@ -323,20 +323,20 @@ bool SoundTowns::loadInstruments() { Screen::decodeFrame4(twm, _musicTrackData, 50570); for (int i = 0; i < 128; i++) - _driver->loadInstrument(0, i, &_musicTrackData[i * 48 + 8]); + _player->driver()->loadInstrument(0, i, &_musicTrackData[i * 48 + 8]); Screen::decodeFrame4(twm + 3232, _musicTrackData, 50570); for (int i = 0; i < 32; i++) - _driver->loadInstrument(0x40, i, &_musicTrackData[i * 128 + 8]); + _player->driver()->loadInstrument(0x40, i, &_musicTrackData[i * 128 + 8]); - _driver->unloadWaveTable(-1); + _player->driver()->unloadWaveTable(-1); uint8 *src = &_musicTrackData[32 * 128 + 8]; for (int i = 0; i < 10; i++) { - _driver->loadWaveTable(src); + _player->driver()->loadWaveTable(src); src = src + READ_LE_UINT16(&src[12]) + 32; } - _driver->reserveSoundEffectChannels(2); + _player->driver()->reserveSoundEffectChannels(2); delete[] twm; @@ -350,26 +350,26 @@ void SoundTowns::playEuphonyTrack(uint32 offset, int loop) { const uint8 *src = _musicTrackData + 852; for (int i = 0; i < 32; i++) - _driver->configChan_enable(i, *src++); + _player->configPart_enable(i, *src++); for (int i = 0; i < 32; i++) - _driver->configChan_setMode(i, *src++); + _player->configPart_setType(i, *src++); for (int i = 0; i < 32; i++) - _driver->configChan_remap(i, *src++); + _player->configPart_remap(i, *src++); for (int i = 0; i < 32; i++) - _driver->configChan_adjustVolume(i, *src++); + _player->configPart_adjustVolume(i, *src++); for (int i = 0; i < 32; i++) - _driver->configChan_setTranspose(i, *src++); + _player->configPart_setTranspose(i, *src++); src = _musicTrackData + 1748; for (int i = 0; i < 6; i++) - _driver->assignChannel(i, *src++); + _player->driver()->assignPartToChannel(i, *src++); for (int i = 0x40; i < 0x46; i++) - _driver->assignChannel(i, *src++); + _player->driver()->assignPartToChannel(i, *src++); uint32 trackSize = READ_LE_UINT32(_musicTrackData + 2048); uint8 startTick = _musicTrackData[2052]; - _driver->setMusicTempo(_musicTrackData[2053]); + _player->setTempo(_musicTrackData[2053]); src = _musicTrackData + 2054; uint32 l = READ_LE_UINT32(src + trackSize); @@ -377,14 +377,14 @@ void SoundTowns::playEuphonyTrack(uint32 offset, int loop) { l = READ_LE_UINT32(src + trackSize); trackSize += (l + 4); - _driver->setMusicLoop(loop); - _driver->startMusicTrack(src, trackSize, startTick); + _player->setLoopStatus(loop); + _player->startTrack(src, trackSize, startTick); } void SoundTowns::fadeOutSoundEffects() { for (int i = 127; i > 0; i-= 12) { - _driver->chanVolume(0x46, i); - _driver->chanVolume(0x47, i); + _player->driver()->channelVolume(0x46, i); + _player->driver()->channelVolume(0x47, i); _vm->delay(_vm->tickLength()); } stopAllSoundEffects(); |