Skip to content

Commit

Permalink
TSAGE: Beginning of implementation of Fx method #32
Browse files Browse the repository at this point in the history
  • Loading branch information
dreammaster committed Jul 27, 2011
1 parent f0c5414 commit a877167
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 12 deletions.
25 changes: 14 additions & 11 deletions engines/tsage/sound.cpp
Expand Up @@ -2796,11 +2796,11 @@ AdlibFxSoundDriver::AdlibFxSoundDriver(): SoundDriver() {
_groupData.groupMask = 1;
_groupData.v1 = 0x3E;
_groupData.v2 = 0;
_groupData.pData = &adlib_group_data[0];
_groupData.pData = &adlibFx_group_data[0];

_mixer = _vm->_mixer;
_sampleRate = _mixer->getOutputRate();
_mixer->playStream(Audio::Mixer::kPlainSoundType, &_soundHandle, this, -1, Audio::Mixer::kMaxChannelVolume, 0, DisposeAfterUse::NO, true);
// _mixer->playStream(Audio::Mixer::kPlainSoundType, &_soundHandle, this, -1, Audio::Mixer::kMaxChannelVolume, 0, DisposeAfterUse::NO, true);
/*
Common::set_to(_channelVoiced, _channelVoiced + ADLIB_CHANNEL_COUNT, false);
memset(_channelVolume, 0, ADLIB_CHANNEL_COUNT * sizeof(int));
Expand All @@ -2817,7 +2817,7 @@ AdlibFxSoundDriver::AdlibFxSoundDriver(): SoundDriver() {
}

AdlibFxSoundDriver::~AdlibFxSoundDriver() {
_mixer->stopHandle(_soundHandle);
// _mixer->stopHandle(_soundHandle);
}

bool AdlibFxSoundDriver::open() {
Expand Down Expand Up @@ -2866,23 +2866,26 @@ int AdlibFxSoundDriver::setMasterVolume(int volume) {
}

void AdlibFxSoundDriver::proc32(const byte *channelData, int dataOffset, int program, int channel, int v0, int v1) {
if (program == -1)
if (program != -1)
return;

if (_sound)
// If sound data has been previously set, then release it
if (_channelData)
updateVoice(channel);

// TODO: Stuff


// Set the new channel data
_channelData = channelData + dataOffset;
_soundData = _channelData + 18;

// Start the new sound
debug("Start sound");
}

void AdlibFxSoundDriver::updateVoice(int channel) {
if (_sound) {
if (_channelData) {
write(208);

_sound = NULL;
_channelData = NULL;
_v45062 = 0;
_v45066 = 0;
_v45068 = 0;
Expand All @@ -2902,7 +2905,7 @@ void AdlibFxSoundDriver::proc42(int channel, int cmd, int value, int *v1, int *v
*v2 = 0;
_v4506B = 0;

if (!_sound)
if (!_channelData)
*v2 = 1;
}

Expand Down
3 changes: 2 additions & 1 deletion engines/tsage/sound.h
Expand Up @@ -475,7 +475,8 @@ class AdlibFxSoundDriver: public SoundDriver, Audio::AudioStream {
bool _v45046;
byte _masterVolume;
byte _channelVolume;
Sound *_sound;
const byte *_channelData;
const byte *_soundData;

void write(int v);
void flush();
Expand Down

0 comments on commit a877167

Please sign in to comment.