mirror of
https://github.com/whoahq/whoa.git
synced 2026-02-02 08:42:45 +03:00
feat(sound): add SESound::CreateMasterChannelGroup
This commit is contained in:
parent
4291944518
commit
0865230059
@ -11,6 +11,7 @@
|
|||||||
SESound::Log_Write(__LINE__, __FILE__, result, __VA_ARGS__);
|
SESound::Log_Write(__LINE__, __FILE__, result, __VA_ARGS__);
|
||||||
|
|
||||||
STORM_LIST(SoundCacheNode) SESound::s_CacheList;
|
STORM_LIST(SoundCacheNode) SESound::s_CacheList;
|
||||||
|
TSGrowableArray<SEChannelGroup> SESound::s_ChannelGroups;
|
||||||
SCritSect SESound::s_CritSect3;
|
SCritSect SESound::s_CritSect3;
|
||||||
int32_t SESound::s_Initialized;
|
int32_t SESound::s_Initialized;
|
||||||
SCritSect SESound::s_InternalCritSect;
|
SCritSect SESound::s_InternalCritSect;
|
||||||
@ -157,6 +158,17 @@ FMOD_RESULT SESeekCallback(void* handle, uint32_t pos, void* userdata) {
|
|||||||
return FMOD_OK;
|
return FMOD_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SESound::CreateMasterChannelGroup() {
|
||||||
|
SESound::s_ChannelGroups.Clear();
|
||||||
|
|
||||||
|
auto masterChannelGroup = SESound::s_ChannelGroups.New();
|
||||||
|
masterChannelGroup->m_nameHash = SStrHashHT("<master>");
|
||||||
|
masterChannelGroup->m_parentChannelGroup = -1;
|
||||||
|
masterChannelGroup->m_volume = 1.0f;
|
||||||
|
masterChannelGroup->m_muteVolume = 1.0f;
|
||||||
|
masterChannelGroup->m_dirty = false;
|
||||||
|
}
|
||||||
|
|
||||||
FMOD::SoundGroup* SESound::CreateSoundGroup(const char* name, int32_t maxAudible) {
|
FMOD::SoundGroup* SESound::CreateSoundGroup(const char* name, int32_t maxAudible) {
|
||||||
FMOD::SoundGroup* group = nullptr;
|
FMOD::SoundGroup* group = nullptr;
|
||||||
FMOD_RESULT result;
|
FMOD_RESULT result;
|
||||||
@ -317,6 +329,10 @@ void SESound::Init(int32_t maxChannels, int32_t* a2, int32_t enableReverb, int32
|
|||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
|
|
||||||
|
SESound::CreateMasterChannelGroup();
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
|
||||||
SESound::s_Initialized = 1;
|
SESound::s_Initialized = 1;
|
||||||
|
|
||||||
LOG_WRITE(FMOD_OK, " - FMOD System Init OK!");
|
LOG_WRITE(FMOD_OK, " - FMOD System Init OK!");
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
#ifndef SOUND_SE_SOUND_HPP
|
#ifndef SOUND_SE_SOUND_HPP
|
||||||
#define SOUND_SE_SOUND_HPP
|
#define SOUND_SE_SOUND_HPP
|
||||||
|
|
||||||
|
#include "sound/SEChannelGroup.hpp"
|
||||||
#include "sound/SESoundInternal.hpp"
|
#include "sound/SESoundInternal.hpp"
|
||||||
#include "sound/SEUserData.hpp"
|
#include "sound/SEUserData.hpp"
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
@ -16,6 +17,7 @@ class SESound {
|
|||||||
public:
|
public:
|
||||||
// Public static variables
|
// Public static variables
|
||||||
static STORM_LIST(SoundCacheNode) s_CacheList;
|
static STORM_LIST(SoundCacheNode) s_CacheList;
|
||||||
|
static TSGrowableArray<SEChannelGroup> s_ChannelGroups;
|
||||||
static SCritSect s_CritSect3;
|
static SCritSect s_CritSect3;
|
||||||
static int32_t s_Initialized;
|
static int32_t s_Initialized;
|
||||||
static SCritSect s_InternalCritSect;
|
static SCritSect s_InternalCritSect;
|
||||||
@ -48,6 +50,7 @@ class SESound {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
// Private static functions
|
// Private static functions
|
||||||
|
static void CreateMasterChannelGroup();
|
||||||
static int32_t LoadDiskSound(FMOD::System* fmodSystem, const char* filename, FMOD_MODE fmodMode, SESound* sound, FMOD::SoundGroup* fmodSoundGroup1, FMOD::SoundGroup* fmodSoundGroup2, bool a7, int32_t a8, uint32_t a9, int32_t a10, uint32_t decodeBufferSize, int32_t a12, float a13, float a14, float a15, float* a16);
|
static int32_t LoadDiskSound(FMOD::System* fmodSystem, const char* filename, FMOD_MODE fmodMode, SESound* sound, FMOD::SoundGroup* fmodSoundGroup1, FMOD::SoundGroup* fmodSoundGroup2, bool a7, int32_t a8, uint32_t a9, int32_t a10, uint32_t decodeBufferSize, int32_t a12, float a13, float a14, float a15, float* a16);
|
||||||
static void ProcessReadyDiskSounds();
|
static void ProcessReadyDiskSounds();
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user