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;
--
⑨