MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / Init

Method Init

Source/Engine/Audio/Audio.cpp:156–220  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

154}
155
156bool AudioService::Init()
157{
158 PROFILE_CPU_NAMED("Audio.Init");
159 PROFILE_MEM(Audio);
160 const auto settings = AudioSettings::Get();
161 const bool mute = CommandLine::Options.Mute.IsTrue() || settings->DisableAudio;
162
163 // Pick a backend to use
164 AudioBackend* backend = nullptr;
165#if AUDIO_API_NONE
166 if (mute)
167 backend = New<AudioBackendNone>();
168#endif
169#if AUDIO_API_PS4
170 if (!backend)
171 backend = New<AudioBackendPS4>();
172#endif
173#if AUDIO_API_PS5
174 if (!backend)
175 backend = New<AudioBackendPS5>();
176#endif
177#if AUDIO_API_SWITCH
178 if (!backend)
179 backend = New<AudioBackendSwitch>();
180#endif
181#if AUDIO_API_OPENAL
182 if (!backend)
183 backend = New<AudioBackendOAL>();
184#endif
185#if AUDIO_API_XAUDIO2
186 if (!backend)
187 backend = New<AudioBackendXAudio2>();
188#endif
189#if AUDIO_API_NONE
190 if (!backend)
191 backend = New<AudioBackendNone>();
192#else
193 if (mute)
194 LOG(Warning, "Cannot use mute audio. Null Audio Backend not available on this platform.");
195#endif
196 if (backend == nullptr)
197 {
198 LOG(Error, "Failed to create audio backend.");
199 return true;
200 }
201 AudioBackend::Instance = backend;
202
203 LOG(Info, "Audio system initialization... (backend: {0})", AudioBackend::Name());
204
205 EnableHRTF = settings->EnableHRTF;
206 if (AudioBackend::Init())
207 {
208 LOG(Warning, "Failed to initialize audio backend.");
209 }
210 if (EnableHRTF && EnumHasNoneFlags(AudioBackend::Features(), AudioBackend::FeatureFlags::HRTF))
211 {
212 LOG(Warning, "HRTF audio is not supported.");
213 EnableHRTF = false;

Callers

nothing calls this directly

Calls 6

NameFunction · 0.85
EnumHasNoneFlagsFunction · 0.85
GetFunction · 0.50
InitFunction · 0.50
IsTrueMethod · 0.45
BindMethod · 0.45

Tested by

no test coverage detected