Change the audio backend API a little

AudioBackend_SetSoundPosition was very loosely-defined.
This commit is contained in:
Clownacy 2019-09-04 03:16:33 +01:00
parent d7362f8a14
commit a3bb651194
4 changed files with 15 additions and 21 deletions

View file

@ -15,8 +15,8 @@ void AudioBackend_UnlockSound(AudioBackend_Sound *sound);
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);

View file

@ -271,6 +271,19 @@ void AudioBackend_StopSound(AudioBackend_Sound *sound)
SDL_LockAudioDevice(device_id);
sound->playing = FALSE;
sound->position = 0.0;
SDL_UnlockAudioDevice(device_id);
}
void AudioBackend_PauseSound(AudioBackend_Sound *sound)
{
if (sound == NULL)
return;
SDL_LockAudioDevice(device_id);
sound->playing = FALSE;
SDL_UnlockAudioDevice(device_id);
@ -311,15 +324,3 @@ void AudioBackend_SetSoundPan(AudioBackend_Sound *sound, long pan)
SDL_UnlockAudioDevice(device_id);
}
void AudioBackend_SetSoundPosition(AudioBackend_Sound *sound, size_t position)
{
if (sound == NULL)
return;
SDL_LockAudioDevice(device_id);
SetSoundPosition(sound, position);
SDL_UnlockAudioDevice(device_id);
}

View file

@ -177,7 +177,6 @@ BOOL MakeSoundObject8(signed char *wavep, signed char track, signed char pipi)
}
AudioBackend_UnlockSound(lpORGANBUFFER[track][j][k]);
AudioBackend_SetSoundPosition(lpORGANBUFFER[track][j][k], 0);
}
}
@ -219,10 +218,7 @@ void PlayOrganObject(unsigned char key, int mode, signed char track, long freq)
{
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 @@ void PlayDramObject(unsigned char key, int mode, signed char track)
{
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;

View file

@ -197,12 +197,11 @@ void PlaySoundObject(int no, int mode)
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;