shithub: cstory

Download patch

ref: a3bb651194f90d5022ab5d2c749d084f8752bb22
parent: d7362f8a144d69e0e175d606bd27cc1d55949b60
author: Clownacy <Clownacy@users.noreply.github.com>
date: Tue Sep 3 23:16:33 EDT 2019

Change the audio backend API a little

AudioBackend_SetSoundPosition was very loosely-defined.

--- a/src/Backends/Audio.h
+++ b/src/Backends/Audio.h
@@ -15,8 +15,8 @@
 
 void AudioBackend_PlaySound(AudioBackend_Sound *sound, BOOL looping);
 void AudioBackend_StopSound(AudioBackend_Sound *sound);
+void AudioBackend_PauseSound(AudioBackend_Sound *sound);
 
 void AudioBackend_SetSoundFrequency(AudioBackend_Sound *sound, unsigned int frequency);
 void AudioBackend_SetSoundVolume(AudioBackend_Sound *sound, long volume);
 void AudioBackend_SetSoundPan(AudioBackend_Sound *sound, long pan);
-void AudioBackend_SetSoundPosition(AudioBackend_Sound *sound, size_t position);
--- a/src/Backends/Audio/SDL2.cpp
+++ b/src/Backends/Audio/SDL2.cpp
@@ -272,11 +272,12 @@
 	SDL_LockAudioDevice(device_id);
 
 	sound->playing = FALSE;
+	sound->position = 0.0;
 
 	SDL_UnlockAudioDevice(device_id);
 }
 
-void AudioBackend_SetSoundFrequency(AudioBackend_Sound *sound, unsigned int frequency)
+void AudioBackend_PauseSound(AudioBackend_Sound *sound)
 {
 	if (sound == NULL)
 		return;
@@ -283,12 +284,12 @@
 
 	SDL_LockAudioDevice(device_id);
 
-	SetSoundFrequency(sound, frequency);
+	sound->playing = FALSE;
 
 	SDL_UnlockAudioDevice(device_id);
 }
 
-void AudioBackend_SetSoundVolume(AudioBackend_Sound *sound, long volume)
+void AudioBackend_SetSoundFrequency(AudioBackend_Sound *sound, unsigned int frequency)
 {
 	if (sound == NULL)
 		return;
@@ -295,12 +296,12 @@
 
 	SDL_LockAudioDevice(device_id);
 
-	SetSoundVolume(sound, volume);
+	SetSoundFrequency(sound, frequency);
 
 	SDL_UnlockAudioDevice(device_id);
 }
 
-void AudioBackend_SetSoundPan(AudioBackend_Sound *sound, long pan)
+void AudioBackend_SetSoundVolume(AudioBackend_Sound *sound, long volume)
 {
 	if (sound == NULL)
 		return;
@@ -307,12 +308,12 @@
 
 	SDL_LockAudioDevice(device_id);
 
-	SetSoundPan(sound, pan);
+	SetSoundVolume(sound, volume);
 
 	SDL_UnlockAudioDevice(device_id);
 }
 
-void AudioBackend_SetSoundPosition(AudioBackend_Sound *sound, size_t position)
+void AudioBackend_SetSoundPan(AudioBackend_Sound *sound, long pan)
 {
 	if (sound == NULL)
 		return;
@@ -319,7 +320,7 @@
 
 	SDL_LockAudioDevice(device_id);
 
-	SetSoundPosition(sound, position);
+	SetSoundPan(sound, pan);
 
 	SDL_UnlockAudioDevice(device_id);
 }
--- a/src/Organya.cpp
+++ b/src/Organya.cpp
@@ -177,7 +177,6 @@
 			}
 
 			AudioBackend_UnlockSound(lpORGANBUFFER[track][j][k]);
-			AudioBackend_SetSoundPosition(lpORGANBUFFER[track][j][k], 0);
 		}
 	}
 
@@ -219,10 +218,7 @@
 		{
 			case 0:	// 停止 (Stop)
 				if (old_key[track] != 0xFF)
-				{
 					AudioBackend_StopSound(lpORGANBUFFER[track][old_key[track] / 12][key_twin[track]]);
-					AudioBackend_SetSoundPosition(lpORGANBUFFER[track][old_key[track] / 12][key_twin[track]], 0);
-				}
 				break;
 
 			case 1: // 再生 (Playback)
@@ -345,12 +341,10 @@
 		{
 			case 0:	// 停止 (Stop)
 				AudioBackend_StopSound(lpSECONDARYBUFFER[150 + track]);
-				AudioBackend_SetSoundPosition(lpSECONDARYBUFFER[150 + track], 0);
 				break;
 
 			case 1:	// 再生 (Playback)
 				AudioBackend_StopSound(lpSECONDARYBUFFER[150 + track]);
-				AudioBackend_SetSoundPosition(lpSECONDARYBUFFER[150 + track], 0);
 				ChangeDramFrequency(key, track);	// 周波数を設定して ()
 				AudioBackend_PlaySound(lpSECONDARYBUFFER[150 + track], FALSE);
 				break;
--- a/src/Sound.cpp
+++ b/src/Sound.cpp
@@ -197,12 +197,11 @@
 		switch (mode)
 		{
 			case 0:	// 停止 (Stop)
-				AudioBackend_StopSound(lpSECONDARYBUFFER[no]);
+				AudioBackend_PauseSound(lpSECONDARYBUFFER[no]);
 				break;
 
 			case 1:	// 再生 (Playback)
 				AudioBackend_StopSound(lpSECONDARYBUFFER[no]);
-				AudioBackend_SetSoundPosition(lpSECONDARYBUFFER[no], 0);
 				AudioBackend_PlaySound(lpSECONDARYBUFFER[no], FALSE);
 				break;
 
--