Elevate Engine 1
Loading...
Searching...
No Matches
SoundEngine.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4
5namespace Elevate
6{
7 class GameObject;
8
10 {
11 public:
12 static void SetImplementation(SoundEngine* implementation)
13 {
14 Impl = implementation;
15 }
16
17 static bool Init();
18 static void RenderAudio();
19 static void Terminate();
20
21 static void SetDefaultListener(GameObject* obj);
22 static void SetDistanceProbe(GameObject* obj);
23 static void UnsetDistanceProbe();
24
25 static void RegisterGameObject(GameObject* obj);
26 static void UnregisterGameObject(GameObject* obj);
27 static void UpdatePosition(GameObject* obj);
28
29 static void PostEvent(const char* eventName, GameObject* object);
30 static void PostEvent(uint32_t eventId, GameObject* object);
31 static void PostEvent(const char* eventName);
32 static void PostEvent(uint32_t eventId);
33
34 static void Wakeup();
35 static void Suspend(bool renderAnyway = false, bool fadeOut = true);
36
37 static SoundEngine* GetImpl();
38
39 protected:
40 virtual bool InitImpl() = 0;
41 virtual void RenderAudioImpl() = 0;
42 virtual void TerminateImpl() = 0;
43
44 virtual void WakeUpImpl() = 0;
45 virtual void SuspendImpl(bool renderAnyway, bool fadeOut) = 0;
46
47 virtual void SetDefaultListenerImpl(GameObject* obj) = 0;
48 virtual void SetDistanceProbeImpl(GameObject* obj) = 0;
49 virtual void UnsetDistanceProbeImpl() = 0;
50
51 virtual void RegisterGameObjectImpl(GameObject* obj) = 0;
52 virtual void UnregisterGameObjectImpl(GameObject* obj) = 0;
53 virtual void UpdateObjectPositionImpl(GameObject* obj) = 0;
54
55 virtual void PostEventImpl(const char* eventName, GameObject* object) = 0;
56 virtual void PostEventImpl(uint32_t eventName, GameObject* object) = 0;
57 virtual void PostEventImpl(const char* eventName) = 0;
58 virtual void PostEventImpl(uint32_t eventName) = 0;
59
60 private:
61 static SoundEngine* Impl;
62 };
63}
static void UpdatePosition(GameObject *obj)
static SoundEngine * GetImpl()
virtual void UpdateObjectPositionImpl(GameObject *obj)=0
static void Terminate()
static void PostEvent(const char *eventName, GameObject *object)
virtual void WakeUpImpl()=0
virtual void PostEventImpl(uint32_t eventName, GameObject *object)=0
virtual void UnsetDistanceProbeImpl()=0
virtual void PostEventImpl(const char *eventName)=0
static void SetDistanceProbe(GameObject *obj)
static void UnregisterGameObject(GameObject *obj)
virtual void SetDefaultListenerImpl(GameObject *obj)=0
static void SetImplementation(SoundEngine *implementation)
Definition SoundEngine.h:12
static void SetDefaultListener(GameObject *obj)
static void Suspend(bool renderAnyway=false, bool fadeOut=true)
virtual void RegisterGameObjectImpl(GameObject *obj)=0
virtual void SetDistanceProbeImpl(GameObject *obj)=0
virtual void PostEventImpl(const char *eventName, GameObject *object)=0
static void RegisterGameObject(GameObject *obj)
static void Wakeup()
virtual void TerminateImpl()=0
virtual bool InitImpl()=0
static void RenderAudio()
static void UnsetDistanceProbe()
virtual void RenderAudioImpl()=0
virtual void PostEventImpl(uint32_t eventName)=0
virtual void UnregisterGameObjectImpl(GameObject *obj)=0
virtual void SuspendImpl(bool renderAnyway, bool fadeOut)=0