shithub: cstory

Download patch

ref: 0dc9bb6b1bb6cd6d41428e42014ac9bbd70cf556
parent: d02af1bfbaef88a9f563044652d0878ae2f609c2
author: Clownacy <Clownacy@users.noreply.github.com>
date: Fri Sep 6 10:46:31 EDT 2019

Change the audio backend API again

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