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_PlaySound(AudioBackend_Sound *sound, BOOL looping);
|
||||||
void AudioBackend_StopSound(AudioBackend_Sound *sound);
|
void AudioBackend_StopSound(AudioBackend_Sound *sound);
|
||||||
|
void AudioBackend_PauseSound(AudioBackend_Sound *sound);
|
||||||
|
|
||||||
void AudioBackend_SetSoundFrequency(AudioBackend_Sound *sound, unsigned int frequency);
|
void AudioBackend_SetSoundFrequency(AudioBackend_Sound *sound, unsigned int frequency);
|
||||||
void AudioBackend_SetSoundVolume(AudioBackend_Sound *sound, long volume);
|
void AudioBackend_SetSoundVolume(AudioBackend_Sound *sound, long volume);
|
||||||
void AudioBackend_SetSoundPan(AudioBackend_Sound *sound, long pan);
|
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);
|
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;
|
sound->playing = FALSE;
|
||||||
|
|
||||||
SDL_UnlockAudioDevice(device_id);
|
SDL_UnlockAudioDevice(device_id);
|
||||||
|
@ -311,15 +324,3 @@ void AudioBackend_SetSoundPan(AudioBackend_Sound *sound, long pan)
|
||||||
|
|
||||||
SDL_UnlockAudioDevice(device_id);
|
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_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)
|
case 0: // 停止 (Stop)
|
||||||
if (old_key[track] != 0xFF)
|
if (old_key[track] != 0xFF)
|
||||||
{
|
|
||||||
AudioBackend_StopSound(lpORGANBUFFER[track][old_key[track] / 12][key_twin[track]]);
|
AudioBackend_StopSound(lpORGANBUFFER[track][old_key[track] / 12][key_twin[track]]);
|
||||||
AudioBackend_SetSoundPosition(lpORGANBUFFER[track][old_key[track] / 12][key_twin[track]], 0);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: // 再生 (Playback)
|
case 1: // 再生 (Playback)
|
||||||
|
@ -345,12 +341,10 @@ void PlayDramObject(unsigned char key, int mode, signed char track)
|
||||||
{
|
{
|
||||||
case 0: // 停止 (Stop)
|
case 0: // 停止 (Stop)
|
||||||
AudioBackend_StopSound(lpSECONDARYBUFFER[150 + track]);
|
AudioBackend_StopSound(lpSECONDARYBUFFER[150 + track]);
|
||||||
AudioBackend_SetSoundPosition(lpSECONDARYBUFFER[150 + track], 0);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: // 再生 (Playback)
|
case 1: // 再生 (Playback)
|
||||||
AudioBackend_StopSound(lpSECONDARYBUFFER[150 + track]);
|
AudioBackend_StopSound(lpSECONDARYBUFFER[150 + track]);
|
||||||
AudioBackend_SetSoundPosition(lpSECONDARYBUFFER[150 + track], 0);
|
|
||||||
ChangeDramFrequency(key, track); // 周波数を設定して ()
|
ChangeDramFrequency(key, track); // 周波数を設定して ()
|
||||||
AudioBackend_PlaySound(lpSECONDARYBUFFER[150 + track], FALSE);
|
AudioBackend_PlaySound(lpSECONDARYBUFFER[150 + track], FALSE);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -197,12 +197,11 @@ void PlaySoundObject(int no, int mode)
|
||||||
switch (mode)
|
switch (mode)
|
||||||
{
|
{
|
||||||
case 0: // 停止 (Stop)
|
case 0: // 停止 (Stop)
|
||||||
AudioBackend_StopSound(lpSECONDARYBUFFER[no]);
|
AudioBackend_PauseSound(lpSECONDARYBUFFER[no]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: // 再生 (Playback)
|
case 1: // 再生 (Playback)
|
||||||
AudioBackend_StopSound(lpSECONDARYBUFFER[no]);
|
AudioBackend_StopSound(lpSECONDARYBUFFER[no]);
|
||||||
AudioBackend_SetSoundPosition(lpSECONDARYBUFFER[no], 0);
|
|
||||||
AudioBackend_PlaySound(lpSECONDARYBUFFER[no], FALSE);
|
AudioBackend_PlaySound(lpSECONDARYBUFFER[no], FALSE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue