aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/sound_towns.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/kyra/sound_towns.cpp')
-rw-r--r--engines/kyra/sound_towns.cpp100
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();