Change the audio backend API a little
AudioBackend_SetSoundPosition was very loosely-defined.
This commit is contained in:
parent
d7362f8a14
commit
a3bb651194
4 changed files with 15 additions and 21 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue