3#ifndef ENGINE_CLIENT_SOUND_H
4#define ENGINE_CLIENT_SOUND_H
11#include <SDL_events.h>
113 bool DecodeOpus(
CSample &Sample, const
void *pData,
unsigned DataSize, const
char *pContextName) const;
114 bool DecodeWV(
CSample &Sample, const
void *pData,
unsigned DataSize, const
char *pContextName) const;
int LoadOpus(const char *pFilename, int StorageType=IStorage::TYPE_ALL) override REQUIRES(!m_SoundLock)
Definition sound.cpp:693
void Pause(int SampleId) override REQUIRES(!m_SoundLock)
Definition sound.cpp:1088
int64_t m_PlaybackTime
Definition sound.h:98
int m_FirstFreeSampleIndex GUARDED_BY(m_SoundLock)=0
void CloseDevice()
Definition sound.cpp:286
void RateConvert(CSample &Sample) const
Definition sound.cpp:424
int Update() override REQUIRES(!m_SoundLock)
Definition sound.cpp:331
void Shutdown() override REQUIRES(!m_SoundLock)
Definition sound.cpp:387
void SetVoiceVolume(CVoiceHandle Voice, float Volume) override REQUIRES(!m_SoundLock)
Definition sound.cpp:901
bool m_SoundEnabled
Definition sound.h:72
unsigned AdvanceVoice(CVoice &Voice, unsigned Frames) REQUIRES(m_SoundLock)
Definition sound.cpp:35
static int SDLCALL HandleAudioDeviceEvent(void *pUser, SDL_Event *pEvent)
Definition sound.cpp:258
void SetListenerPosition(vec2 Position) override
Definition sound.cpp:895
void StopVoice(CVoiceHandle Voice) override REQUIRES(!m_SoundLock)
Definition sound.cpp:1144
CLock m_SoundLock
Definition sound.h:77
CSample * AllocSample() REQUIRES(!m_SoundLock)
Definition sound.cpp:408
float GetSampleCurrentTime(int SampleId) override REQUIRES(!m_SoundLock)
Definition sound.cpp:849
void AdvancePlayback() REQUIRES(!m_SoundLock)
Definition sound.cpp:339
void UnloadSample(int SampleId) override REQUIRES(!m_SoundLock)
Definition sound.cpp:807
SDL_AudioSpec m_AudioSpec
Definition sound.h:73
int LoadOpusFromMem(const void *pData, unsigned DataSize, bool ForceLoad, const char *pContextName) override REQUIRES(!m_SoundLock)
Definition sound.cpp:767
void SetChannel(int ChannelId, float Vol, float Pan) override REQUIRES(!m_SoundLock)
Definition sound.cpp:886
CVoiceHandle PlayAt(int ChannelId, int SampleId, int Flags, float Volume, vec2 Position) override REQUIRES(!m_SoundLock)
Definition sound.cpp:1078
void SetVoicePosition(CVoiceHandle Voice, vec2 Position) override REQUIRES(!m_SoundLock)
Definition sound.cpp:931
bool IsPlaying(int SampleId) override REQUIRES(!m_SoundLock)
Definition sound.cpp:1159
uint32_t m_MaxFrames
Definition sound.h:85
CVoiceHandle Play(int ChannelId, int SampleId, int Flags, float Volume, vec2 Position) REQUIRES(!m_SoundLock)
Definition sound.cpp:1029
class IEngineGraphics * m_pGraphics
Definition sound.h:94
void Mix(short *pFinalOut, unsigned Frames) override REQUIRES(!m_SoundLock)
Definition sound.cpp:58
float GetSampleTotalTime(int SampleId) override REQUIRES(!m_SoundLock)
Definition sound.cpp:840
void PauseAudioDevice() override
Definition sound.cpp:1168
void Stop(int SampleId) override REQUIRES(!m_SoundLock)
Definition sound.cpp:1106
void SetSampleCurrentTime(int SampleId, float Time) override REQUIRES(!m_SoundLock)
Definition sound.cpp:867
bool HasAudioOutput() const
Definition sound.cpp:322
bool IsSoundEnabled() override
Definition sound.h:123
int LoadWV(const char *pFilename, int StorageType=IStorage::TYPE_ALL) override REQUIRES(!m_SoundLock)
Definition sound.cpp:730
bool DecodeOpus(CSample &Sample, const void *pData, unsigned DataSize, const char *pContextName) const
Definition sound.cpp:464
int m_MixingRate
Definition sound.h:92
bool m_DevicePaused
Definition sound.h:75
std::atomic< float > m_ListenerPositionY
Definition sound.h:90
std::atomic< float > m_ListenerPositionX
Definition sound.h:89
void SetVoiceTimeOffset(CVoiceHandle Voice, float TimeOffset) override REQUIRES(!m_SoundLock)
Definition sound.cpp:945
void StopAll() override REQUIRES(!m_SoundLock)
Definition sound.cpp:1127
int m_NextVoice GUARDED_BY(m_SoundLock)=0
CChannel m_aChannels[NUM_CHANNELS] GUARDED_BY(m_SoundLock)
int Init() override REQUIRES(!m_SoundLock)
Definition sound.cpp:201
void UnpauseAudioDevice() override
Definition sound.cpp:1177
int MixingRate() const override
Definition sound.h:155
SDL_AudioDeviceID m_Device
Definition sound.h:74
@ NUM_VOICES
Definition sound.h:68
@ NUM_CHANNELS
Definition sound.h:69
@ NUM_SAMPLES
Definition sound.h:67
bool DecodeWV(CSample &Sample, const void *pData, unsigned DataSize, const char *pContextName) const
Definition sound.cpp:612
void SetVoiceRectangle(CVoiceHandle Voice, float Width, float Height) override REQUIRES(!m_SoundLock)
Definition sound.cpp:1013
bool OpenDevice(bool AllowFrequencyChange)
Definition sound.cpp:267
void UpdateVolume()
Definition sound.cpp:379
int * m_pMixBuffer
Definition sound.h:97
std::atomic< int > m_SoundVolume
Definition sound.h:91
void SetVoiceCircle(CVoiceHandle Voice, float Radius) override REQUIRES(!m_SoundLock)
Definition sound.cpp:998
void UpdateDevice() REQUIRES(!m_SoundLock)
Definition sound.cpp:295
CSample m_aSamples[NUM_SAMPLES] GUARDED_BY(m_SoundLock)
IStorage * m_pStorage
Definition sound.h:95
int LoadWVFromMem(const void *pData, unsigned DataSize, bool ForceLoad, const char *pContextName) override REQUIRES(!m_SoundLock)
Definition sound.cpp:787
CVoice m_aVoices[NUM_VOICES] GUARDED_BY(m_SoundLock)
void SetVoiceFalloff(CVoiceHandle Voice, float Falloff) override REQUIRES(!m_SoundLock)
Definition sound.cpp:916
std::atomic< bool > m_DeviceChanged
Definition sound.h:76
Definition graphics.h:678
@ TYPE_ALL
Definition storage.h:27
#define REQUIRES(...)
Definition lock.h:34
int m_Pan
Definition sound.h:41
int m_Vol
Definition sound.h:40
int m_PausedAt
Definition sound.h:25
bool IsLoaded() const
Definition sound.h:32
int m_Index
Definition sound.h:17
int m_NumFrames
Definition sound.h:21
int m_Channels
Definition sound.h:23
int m_Rate
Definition sound.h:22
short * m_pData
Definition sound.h:20
float TotalTime() const
Definition sound.h:27
int m_NextFreeSampleIndex
Definition sound.h:18
int m_LoopStart
Definition sound.h:24
CSample * m_pSample
Definition sound.h:46
CChannel * m_pChannel
Definition sound.h:47
int m_Vol
Definition sound.h:50
int m_Flags
Definition sound.h:51
int m_Age
Definition sound.h:48
float m_Falloff
Definition sound.h:53
int m_Tick
Definition sound.h:49
vec2 m_Position
Definition sound.h:52
int m_Shape
Definition sound.h:55
ISound::CVoiceShapeCircle m_Circle
ISound::CVoiceShapeRectangle m_Rectangle
vector2_base< float > vec2
Definition vmath.h:168