Polyphase Game Engine
Loading...
Searching...
No Matches
Audio3d.h
Go to the documentation of this file.
1#pragma once
2
3#include "Nodes/3D/Node3d.h"
4
5#include "Assets/SoundWave.h"
6
8{
9public:
10
12
13 Audio3D();
14 ~Audio3D();
15
16 virtual const char* GetTypeName() const override;
17 virtual void GatherProperties(std::vector<Property>& outProps) override;
18 virtual void GatherProxyDraws(std::vector<DebugDraw>& inoutDraws) override;
19
20 virtual void Create() override;
21 virtual void Destroy() override;
22 virtual void Start() override;
23 virtual void Tick(float deltaTime) override;
24 virtual void EditorTick(float deltaTime) override;
25
26 void SetSoundWave(SoundWave* soundWave);
27 SoundWave* GetSoundWave();
28
29 void SetInnerRadius(float innerRadius);
30 float GetInnerRadius() const;
31
32 void SetOuterRadius(float outerRadius);
33 float GetOuterRadius() const;
34
35 void SetVolume(float volume);
36 float GetVolume() const;
37
38 void SetPitch(float pitch);
39 float GetPitch() const;
40
41 void SetStartOffset(float startOffset);
42 float GetStartOffset() const;
43
44 void SetPriority(int32_t priority);
45 int32_t GetPriority() const;
46
47 void SetAttenuationFunc(AttenuationFunc func);
48 AttenuationFunc GetAttenuationFunc() const;
49
50 void SetAudioClass(int8_t audioClass);
51 int8_t GetAudioClass() const;
52
53 void SetLoop(bool loop);
54 bool GetLoop() const;
55
56 void SetAutoPlay(bool autoPlay);
57 bool GetAutoPlay() const;
58
59 float GetPlayTime() const;
60 bool IsPlaying() const;
61 bool IsAudible() const;
62
63 void PlayAudio();
64 void PauseAudio();
65 void StopAudio();
66 void ResetAudio();
67
68 void NotifyAudible(bool audible);
69
70 static bool HandlePropChange(Datum* datum, uint32_t index, const void* newValue);
71
72protected:
73
74 void TickCommon(float deltaTime);
75
76 // Properties
78 float mInnerRadius = 0.0f;
79 float mOuterRadius = 15.0f;
80 float mVolume = 1.0f;
81 float mPitch = 1.0f;
82 float mStartOffset = 0.0f;
83 int32_t mPriority = 0;
85 int8_t mAudioClass = -1;
86 bool mLoop = false;
87 bool mAutoPlay = false;
88
89 // State
90 float mPlayTime = 0.0f;
91 bool mPlaying = false;
92 bool mAudible = false;
93};
void PlayAudio(uint32_t sourceIndex, SoundWave *soundWave, Audio3D *component, float volumeMult, float pitchMult, int32_t priority, glm::vec3 position, float innerRadius, float outerRadius, AttenuationFunc attenFunc, int32_t audioClass, bool loop, float startTime)
Definition AudioManager.cpp:162
void StopAudio(uint32_t sourceIndex)
Definition AudioManager.cpp:217
AttenuationFunc
Definition EngineTypes.h:469
bool IsPlaying()
Definition Engine.cpp:1327
#define POLYPHASE_API
Definition PolyphaseAPI.h:31
Definition AssetRef.h:18
Definition Audio3d.h:8
DECLARE_NODE(Audio3D, Node3D)
SoundWaveRef mSoundWave
Definition Audio3d.h:77
Definition Datum.h:164
Definition Node3d.h:14
virtual void Create() override
Definition Node3d.cpp:96
virtual const char * GetTypeName() const override
Definition Node3d.cpp:119
virtual void Destroy() override
Definition Node3d.cpp:101
virtual void Tick(float deltaTime) override
Definition Node3d.cpp:114
virtual void GatherProperties(std::vector< Property > &outProps) override
Definition Node3d.cpp:124
virtual void GatherProxyDraws(std::vector< DebugDraw > &inoutDraws)
Definition Node3d.cpp:298
void TickCommon(float deltaTime)
Definition Node.cpp:573
virtual void EditorTick(float deltaTime)
Definition Node.cpp:563
static bool HandlePropChange(Datum *datum, uint32_t index, const void *newValue)
Definition Node.cpp:74
virtual void Start()
Definition Node.cpp:459
Definition SoundWave.h:6