Elevate Engine 1
Loading...
Searching...
No Matches
WwiseSoundEngine.h
Go to the documentation of this file.
1#pragma once
2
4
5#ifdef EE_USES_WWISE
6
7#define EE_AUDIO_VORBIS 1
8#define EE_AUDIO_OPUS 1
9
10#include <ElevateEngine/Audio/Ak/Common/AkFilePackageLowLevelIODeferred.h>
11
12#ifdef EE_EDITOR_BUILD
14#endif
15
16namespace Elevate
17{
18 class GameObject;
19
20 class WwiseSoundEngine : public SoundEngine
21 {
22 public:
23 static WwiseSoundEngine* Get();
24
25 bool LoadBank(const wchar_t* bankName);
26 bool LoadBank(const std::wstring& bankName);
27 bool LoadBank(const char* bankName);
28 bool LoadBank(std::string& bankName);
29
30 #ifdef EE_EDITOR_BUILD
31 virtual std::shared_ptr<WwiseDataSource> GetDataSource();
32 #endif
33
34 protected:
35 virtual bool InitImpl() override;
36 virtual void RenderAudioImpl() override;
37 virtual void TerminateImpl() override;
38 virtual void WakeUpImpl() override;
39 virtual void SuspendImpl(bool renderAnyway, bool fadeOut) override;
40
41 virtual void SetDefaultListenerImpl(GameObject* obj) override;
42 virtual void SetDistanceProbeImpl(GameObject* obj) override;
43 virtual void UnsetDistanceProbeImpl() override;
44
45 virtual void RegisterGameObjectImpl(GameObject* obj) override;
46 virtual void UnregisterGameObjectImpl(GameObject* obj) override;
47 virtual void UpdateObjectPositionImpl(GameObject* obj) override;
48
49 virtual void PostEventImpl(const char* eventName, GameObject* object) override;
50 virtual void PostEventImpl(uint32_t eventId, GameObject* object) override;
51 virtual void PostEventImpl(const char* eventName) override;
52 virtual void PostEventImpl(uint32_t eventId) override;
53 private:
54 void PrepareAudio();
55
56 private:
57 AkGameObjectID m_currentListenerID;
58 std::unique_ptr<CAkFilePackageLowLevelIODeferred> m_lowLevelIO;
59
60 #ifdef EE_EDITOR_BUILD
61 std::shared_ptr<WwiseMergedDataSource> m_mergedDataSource;
62 #endif
63 };
64}
65
66#endif // #ifdef EE_USES_WWISE