[Scummvm-cvs-logs] scummvm master -> 05aa32dc21cce51d56f3cfbfa5a89a0d01ea3736

athrxx athrxx at scummvm.org
Sat Jan 9 22:12:55 CET 2016


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
05aa32dc21 AUDIO: fix two bugs in FM-TOWNS pcm code


Commit: 05aa32dc21cce51d56f3cfbfa5a89a0d01ea3736
    https://github.com/scummvm/scummvm/commit/05aa32dc21cce51d56f3cfbfa5a89a0d01ea3736
Author: athrxx (athrxx at scummvm.org)
Date: 2016-01-09T22:09:53+01:00

Commit Message:
AUDIO: fix two bugs in FM-TOWNS pcm code

Changed paths:
    audio/softsynth/fmtowns_pc98/towns_audio.cpp



diff --git a/audio/softsynth/fmtowns_pc98/towns_audio.cpp b/audio/softsynth/fmtowns_pc98/towns_audio.cpp
index 9db45bd..42824d8 100644
--- a/audio/softsynth/fmtowns_pc98/towns_audio.cpp
+++ b/audio/softsynth/fmtowns_pc98/towns_audio.cpp
@@ -187,6 +187,7 @@ private:
 	int intf_pcmPlayEffect(va_list &args);
 	int intf_pcmChanOff(va_list &args);
 	int intf_pcmEffectPlaying(va_list &args);
+	int intf_pcmDisableAllChannels(va_list &args);
 	int intf_fmKeyOn(va_list &args);
 	int intf_fmKeyOff(va_list &args);
 	int intf_fmSetPanPos(va_list &args);
@@ -335,7 +336,7 @@ TownsAudioInterfaceInternal::TownsAudioInterfaceInternal(Audio::Mixer *mixer, To
 		INTCB(pcmChanOff),
 		// 40
 		INTCB(pcmEffectPlaying),
-		INTCB(notImpl),
+		INTCB(pcmDisableAllChannels),
 		INTCB(notImpl),
 		INTCB(notImpl),
 		// 44
@@ -784,6 +785,8 @@ int TownsAudioInterfaceInternal::intf_loadWaveTable(va_list &args) {
 	if (_waveTablesTotalDataSize + w.size > 65504)
 		return 5;
 
+	callback(41);
+
 	for (int i = 0; i < _numWaveTables; i++) {
 		if (_waveTables[i].id == w.id)
 			return 10;
@@ -800,6 +803,7 @@ int TownsAudioInterfaceInternal::intf_loadWaveTable(va_list &args) {
 
 int TownsAudioInterfaceInternal::intf_unloadWaveTable(va_list &args) {
 	int id = va_arg(args, int);
+	callback(41);
 
 	if (id == -1) {
 		for (int i = 0; i < 128; i++)
@@ -817,8 +821,8 @@ int TownsAudioInterfaceInternal::intf_unloadWaveTable(va_list &args) {
 						memcpy(&_waveTables[i], &_waveTables[i + 1], sizeof(TownsAudio_WaveTable));
 					return 0;
 				}
-				return 9;
 			}
+			return 9;
 		}
 	}
 
@@ -876,6 +880,12 @@ int TownsAudioInterfaceInternal::intf_pcmEffectPlaying(va_list &args) {
 	return _pcmChan[chan]._activeEffect ? 1 : 0;
 }
 
+int TownsAudioInterfaceInternal::intf_pcmDisableAllChannels(va_list &args) {
+	for (int i = 0; i < 8; ++i)
+		_pcmChan[i]._activeOutput = false;
+	return 0;
+}
+
 int TownsAudioInterfaceInternal::intf_fmKeyOn(va_list &args) {
 	int chan = va_arg(args, int);
 	int note = va_arg(args, int);






More information about the Scummvm-git-logs mailing list