diff options
Diffstat (limited to 'sound/mods/maxtrax.cpp')
| -rw-r--r-- | sound/mods/maxtrax.cpp | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/sound/mods/maxtrax.cpp b/sound/mods/maxtrax.cpp index 686a74864e..8e4435da18 100644 --- a/sound/mods/maxtrax.cpp +++ b/sound/mods/maxtrax.cpp @@ -48,7 +48,7 @@ MaxTrax::MaxTrax(int rate, bool stereo)  	uint32 colorClock = kPalSystemClock / 2; -	for (int i = 0; i < kNumChannels; ++i) +	for (int i = 0; i < ARRAYSIZE(_channelCtx); ++i)  		resetChannel(_channelCtx[i], (i & 1) != 0);  	// init extraChannel @@ -92,8 +92,8 @@ void MaxTrax::interrupt() {  			const uint16 stopTime = curEvent->stopTime;  			ChannelContext &channel = _channelCtx[data & 0x0F]; -			outPutEvent(*curEvent); -			debug("CurTime, EventDelta, NextDelta: %d, %d, %d", millis, eventDelta, eventDelta + curEvent[1].startTime ); +			//outPutEvent(*curEvent); +			//debug("CurTime, EventDelta, NextDelta: %d, %d, %d", millis, eventDelta, eventDelta + curEvent[1].startTime );  			if (cmd < 0x80) {	// Note  				const uint16 vol = (data & 0xF0) >> 1; @@ -307,6 +307,7 @@ void MaxTrax::stopMusic() {  bool MaxTrax::doSong(int songIndex, int advance) {  	if (songIndex < 0 || songIndex >= _numScores)  		return false; +	Common::StackLock lock(_mutex);  	Paula::pausePlay(true);  	_playerCtx.musicPlaying = false;  	_playerCtx.musicLoop = false; @@ -569,6 +570,7 @@ void MaxTrax::freePatches() {  }  int MaxTrax::playNote(byte note, byte patch, uint16 duration, uint16 volume, bool rightSide) { +	Common::StackLock lock(_mutex);  	assert(patch < ARRAYSIZE(_patch));  	ChannelContext &channel = _channelCtx[kNumChannels]; @@ -586,6 +588,7 @@ int MaxTrax::playNote(byte note, byte patch, uint16 duration, uint16 volume, boo  }  bool MaxTrax::load(Common::SeekableReadStream &musicData, bool loadScores, bool loadSamples) { +	Common::StackLock lock(_mutex);  	bool res = false;  	stopMusic();  	if (loadSamples) | 
