19#include <FMOD/fmod.hpp>
28#pragma region static_functions
50#pragma region overridden_functions
54 return std::make_unique<AudioSystem>(*
this);
59 auto onUpdate(
float dt) ->
void override;
66 auto save(
Stream& stream)
const ->
void override;
70#pragma region AudioSystem_Functions
343#pragma region member_variables
353#pragma region helper_functions
357#pragma region AudioSystem_Messages
370#pragma region static_variables
sys::Json Stream
Definition AudioObject.h:20
GameObject(std::string typeName, gobj::Type parentType, gobj::Type type)
constructor for gameobject.
Definition GameObject.cpp:23
Type
Definition System.h:20
@ AudioSystem
Definition System.h:29
System(const std::string &typeName, Type systemType)
Definition System.cpp:75
Definition AudioSystem.h:26
auto setMasterVolume(float volume) -> void
Sets the master volume for all audio, this will affect all channel groups and sounds that are playing...
Definition AudioSystem.h:231
auto operator=(const AudioSystem &other) -> AudioSystem &
Definition AudioSystem.cpp:166
auto setOverridePitch(float gain) -> void
Set the gain of the low pass filter 0 for full quiet and 1 for full volume.
Definition AudioSystem.h:190
auto linkMessages() -> void
Definition AudioSystem.cpp:268
auto endWindow() -> void override
currently unused, but intended to but was assumed to be necessary for a proper ImGui editor
Definition AudioSystem.h:61
auto getMusicVolume() const -> float
Returns the music volume for all audio in the music channel group, this will affect all sounds that a...
Definition AudioSystem.h:274
auto getUIVolume() const -> float
Definition AudioSystem.h:330
auto systemShowMenu() -> void override
Specific systems should override this function to show their specific menu for the system.
Definition AudioSystem.cpp:215
FMOD::ChannelGroup * uiGroup
Definition AudioSystem.h:348
auto receivePlayAudioMessage(const Message *message) -> Message
Definition AudioSystem.cpp:292
FMOD::ChannelGroup * overrideGroup
Definition AudioSystem.h:349
auto setUIPitch(float gain) -> void
Set the gain of the low pass filter 0 for full quiet and 1 for full volume.
Definition AudioSystem.h:166
FMOD::ChannelGroup * musicGroup
Definition AudioSystem.h:346
AudioSystem()
Definition AudioSystem.cpp:53
auto onUpdate(float dt) -> void override
called once every frame.
Definition AudioSystem.cpp:194
auto setMusicPitch(float gain) -> void
Set the gain of the low pass filter 0 for full quiet and 1 for full volume.
Definition AudioSystem.h:122
auto getOverrideVolume() const -> float
Returns the master volume for all audio, this will affect all channel groups and sounds that are play...
Definition AudioSystem.h:216
auto receiveIncreaseVolume(const Message *message) -> Message
Increase in volume using the '=' key (meant to be plus).
Definition AudioSystem.cpp:329
auto getUIChannelGroup() -> FMOD::ChannelGroup *
Returns the ui channel group.
Definition AudioSystem.h:157
auto getMasterChannelGroup() -> FMOD::ChannelGroup *
Returns the master channel group.
Definition AudioSystem.h:103
auto getSFXVolume() -> float
Sets the sfx volume for all audio in the sfx channel group, this will affect all sounds that are play...
Definition AudioSystem.h:302
auto save(Stream &stream) const -> void override
Implementations will load the state of a GameObject to a th::Json object.
Definition AudioSystem.cpp:262
auto stopAll() -> void
Stops all current tracks playing.
Definition AudioSystem.cpp:360
auto setSFXVolume(float volume) -> void
Sets the sfx volume for all audio in the sfx channel group, this will affect all sounds that are play...
Definition AudioSystem.h:289
auto getSFXChannelGroup() -> FMOD::ChannelGroup *
Returns the sfx channel group.
Definition AudioSystem.h:135
FMOD::ChannelGroup * sfxGroup
Definition AudioSystem.h:347
FMOD::System * member
Definition AudioSystem.h:344
auto getMasterVolume() const -> float
Returns the master volume for all audio, this will affect all channel groups and sounds that are play...
Definition AudioSystem.h:244
auto setOverrideVolume(float volume) -> void
Sets the master volume for all audio, this will affect all channel groups and sounds that are playing...
Definition AudioSystem.h:203
auto getMusicChannelGroup() -> FMOD::ChannelGroup *
Returns the music channel group.
Definition AudioSystem.h:113
auto setUIVolume(float volume) -> void
Definition AudioSystem.h:317
auto load(Stream &stream) -> void override
Implementations will load the state of a GameObject from a th::Json Object.
Definition AudioSystem.cpp:258
auto receiveDecreaseVolume(const Message *message) -> Message
Decrease in volume using the '-' key.
Definition AudioSystem.cpp:345
static auto getEnum() -> Type
function required by all systems
Definition AudioSystem.h:33
auto receivePlayModulatedMessage(const Message *message) -> Message
Definition AudioSystem.cpp:307
~AudioSystem() override
Definition AudioSystem.cpp:136
auto getFMODSystem() -> FMOD::System *
Returns the FMOD system.
Definition AudioSystem.h:83
FMOD::ChannelGroup * masterGroup
Definition AudioSystem.h:345
auto onRender() -> void override
called every frame after update has been called for every object.
Definition AudioSystem.cpp:254
auto getOverrideChannelGroup() -> FMOD::ChannelGroup *
Returns the override channel group.
Definition AudioSystem.h:93
auto setMusicVolume(float volume) -> void
Sets the music volume for all audio in the music channel group, this will affect all sounds that are ...
Definition AudioSystem.h:260
auto clone() const -> std::unique_ptr< GameObject > override
makes a copy a GameObject even if it's held polymorphically
Definition AudioSystem.h:52
auto setSFXPitch(float gain) -> void
Set the gain of the low pass filter 0 for full quiet and 1 for full volume.
Definition AudioSystem.h:144
auto setMasterPitch(float gain) -> void
Set the gain of the low pass filter 0 for full quiet and 1 for full volume.
Definition AudioSystem.h:178
the type of elements in a basic_json container
Definition GameObject.h:32