diff options
| author | Paul Gilbert | 2011-07-27 19:38:10 +1000 | 
|---|---|---|
| committer | Paul Gilbert | 2011-07-27 19:39:27 +1000 | 
| commit | a877167bfef8189bb0f8aa8483bc70d0f292106b (patch) | |
| tree | 56220fb2498b3e745ff9fa2520191b987685f8fe | |
| parent | f0c5414ca666c97a59850a93ac5aa2740358cb74 (diff) | |
| download | scummvm-rg350-a877167bfef8189bb0f8aa8483bc70d0f292106b.tar.gz scummvm-rg350-a877167bfef8189bb0f8aa8483bc70d0f292106b.tar.bz2 scummvm-rg350-a877167bfef8189bb0f8aa8483bc70d0f292106b.zip | |
TSAGE: Beginning of implementation of Fx method #32
| -rw-r--r-- | engines/tsage/sound.cpp | 25 | ||||
| -rw-r--r-- | engines/tsage/sound.h | 3 | 
2 files changed, 16 insertions, 12 deletions
| diff --git a/engines/tsage/sound.cpp b/engines/tsage/sound.cpp index d31dba21d3..3f02d635ab 100644 --- a/engines/tsage/sound.cpp +++ b/engines/tsage/sound.cpp @@ -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)); @@ -2817,7 +2817,7 @@ AdlibFxSoundDriver::AdlibFxSoundDriver(): SoundDriver() {  }  AdlibFxSoundDriver::~AdlibFxSoundDriver() { -	_mixer->stopHandle(_soundHandle); +//	_mixer->stopHandle(_soundHandle);  }  bool AdlibFxSoundDriver::open() { @@ -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; @@ -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;  } diff --git a/engines/tsage/sound.h b/engines/tsage/sound.h index 05cbb86114..923b3e05f2 100644 --- a/engines/tsage/sound.h +++ b/engines/tsage/sound.h @@ -475,7 +475,8 @@ private:  	bool _v45046;  	byte _masterVolume;  	byte _channelVolume; -	Sound *_sound; +	const byte *_channelData; +	const byte *_soundData;  	void write(int v);  	void flush(); | 
