cave-story-solaris/src/Backends/Audio.h
Clownacy 788697dc5d Fix a possible hang in the audio mixer
It was likely a race condition between the game thread writing to
'organya_timer', and the audio thread reading it.

...I really need to rethink the API for this Organya-synchronisation
thing.
2020-01-29 23:21:27 +00:00

26 lines
942 B
C

#pragma once
#include <stddef.h>
#include "../WindowsWrapper.h"
typedef struct AudioBackend_Sound AudioBackend_Sound;
BOOL AudioBackend_Init(void);
void AudioBackend_Deinit(void);
AudioBackend_Sound* AudioBackend_CreateSound(unsigned int frequency, size_t frames);
void AudioBackend_DestroySound(AudioBackend_Sound *sound);
unsigned char* AudioBackend_LockSound(AudioBackend_Sound *sound, size_t *size);
void AudioBackend_UnlockSound(AudioBackend_Sound *sound);
void AudioBackend_PlaySound(AudioBackend_Sound *sound, BOOL looping);
void AudioBackend_StopSound(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);
void AudioBackend_SetSoundPan(AudioBackend_Sound *sound, long pan);
void AudioBackend_SetOrganyaTimer(unsigned short timer);