Brunot
Loading...
Searching...
No Matches
sys::AudioSystem Class Reference

#include <AudioSystem.h>

Inheritance diagram for sys::AudioSystem:
[legend]
Collaboration diagram for sys::AudioSystem:
[legend]

Public Member Functions

 AudioSystem ()
 ~AudioSystem () override
 AudioSystem (const AudioSystem &other)
 AudioSystem (AudioSystem &&other) noexcept
auto operator= (const AudioSystem &other) -> AudioSystem &
auto operator= (AudioSystem &&other) noexcept -> AudioSystem &
auto clone () const -> std::unique_ptr< GameObject > override
 makes a copy a GameObject even if it's held polymorphically
auto systemShowMenu () -> void override
 Specific systems should override this function to show their specific menu for the system.
auto onUpdate (float dt) -> void override
 called once every frame.
auto endWindow () -> void override
 currently unused, but intended to but was assumed to be necessary for a proper ImGui editor
auto onRender () -> void override
 called every frame after update has been called for every object.
auto load (Stream &stream) -> void override
 Implementations will load the state of a GameObject from a th::Json Object.
auto save (Stream &stream) const -> void override
 Implementations will load the state of a GameObject to a th::Json object.
auto stopAll () -> void
 Stops all current tracks playing.
auto getFMODSystem () -> FMOD::System *
 Returns the FMOD system.
auto getOverrideChannelGroup () -> FMOD::ChannelGroup *
 Returns the override channel group.
auto getMasterChannelGroup () -> FMOD::ChannelGroup *
 Returns the master channel group.
auto getMusicChannelGroup () -> FMOD::ChannelGroup *
 Returns the music channel group.
auto setMusicPitch (float gain) -> void
 Set the gain of the low pass filter 0 for full quiet and 1 for full volume.
auto getSFXChannelGroup () -> FMOD::ChannelGroup *
 Returns the sfx channel group.
auto setSFXPitch (float gain) -> void
 Set the gain of the low pass filter 0 for full quiet and 1 for full volume.
auto getUIChannelGroup () -> FMOD::ChannelGroup *
 Returns the ui channel group.
auto setUIPitch (float gain) -> void
 Set the gain of the low pass filter 0 for full quiet and 1 for full volume.
auto setMasterPitch (float gain) -> void
 Set the gain of the low pass filter 0 for full quiet and 1 for full volume.
auto setOverridePitch (float gain) -> void
 Set the gain of the low pass filter 0 for full quiet and 1 for full volume.
auto setOverrideVolume (float volume) -> void
 Sets the master volume for all audio, this will affect all channel groups and sounds that are playing.
auto getOverrideVolume () const -> float
 Returns the master volume for all audio, this will affect all channel groups and sounds that are playing.
auto setMasterVolume (float volume) -> void
 Sets the master volume for all audio, this will affect all channel groups and sounds that are playing.
auto getMasterVolume () const -> float
 Returns the master volume for all audio, this will affect all channel groups and sounds that are playing.
auto setMusicVolume (float volume) -> void
 Sets the music volume for all audio in the music channel group, this will affect all sounds that are playing in the music channel group.
auto getMusicVolume () const -> float
 Returns the music volume for all audio in the music channel group, this will affect all sounds that are playing in.
auto setSFXVolume (float volume) -> void
 Sets the sfx volume for all audio in the sfx channel group, this will affect all sounds that are playing in.
auto getSFXVolume () -> float
 Sets the sfx volume for all audio in the sfx channel group, this will affect all sounds that are playing in.
auto setUIVolume (float volume) -> void
auto getUIVolume () const -> float
Public Member Functions inherited from System
auto showMenu () -> void override
 Called before update each frame, for calling ImGui editor code relevant to the gameObject.
auto getKey () const -> Key override
 Generates a unique Key that corresponds to the GameObject.
auto getParent () const -> GameObject *override
 Gets the parent of a GameObject.
Public Member Functions inherited from GameObject
 GameObject (std::string typeName, gobj::Type parentType, gobj::Type type)
 constructor for gameobject.
virtual ~GameObject ()
 destructor for GameObject.
 GameObject (const GameObject &other)
 Copy Constructor.
auto operator= (const GameObject &other) -> GameObject &
 copy assignment operator
 GameObject (GameObject &&other) noexcept
 Move constructor.
auto operator= (GameObject &&other) noexcept -> GameObject &
 Move assignment operator.
virtual auto update (float dt) -> void
 called once every frame.
virtual auto render () -> void
 called every frame after update has been called for every object.
virtual auto destroy () -> void
 Marks an GameObject to be destroyed.
virtual auto onEnterEngine () -> void
 hook that is called when a GameObject enters the Engine tree.
virtual auto for_each (std::function< void(GameObject &)> func) -> void
 applies a function to every child.
virtual auto for_each (std::function< void(const GameObject &)> func) const -> void
 applies a const function to every child.
virtual auto parentTo (GameObject *newParent) -> bool
 Sets the GameObject as a child of another GameObject.
auto getInternalParent () const -> GameObject *
 returns the actual owning parent of the GameObject
virtual auto addChild (std::unique_ptr< GameObject > newChild) -> bool
 Adds a child to a GameObject.
auto destroyed () const -> bool
auto getUUID () const -> gobj::UUID
auto isUUID (gobj::UUID compareUUID) const -> bool
auto getName () const -> const std::string &
 Gets the type of the object as a string.
auto getNickname () const -> const std::string &
 Gets the nickname (custom, writable name) of a GameObject.
void calculateFormattedName () const
auto getFormattedName () const -> const std::string &
 combines a GameObjects Type, Nickname, and UUID into one string, for use with logging.
auto nameEquals (const std::string &compareString) const -> bool
 check whether a GameObjects typeName is equivilent to a given string.
auto isType (gobj::Type otherType) const -> bool
 check whether the GameObject is the same as a given type.
auto getObjectType () const -> gobj::Type
 gets the internal type of the GameObject, as an enum
auto setNickname (const std::string &newNickname) -> void
 sets the GameObjects nickname.
auto updates () const -> bool
auto renders () const -> bool
auto receivesMessages () const -> bool
auto isActive () const -> bool
virtual auto setShouldUpdate (const bool _shouldUpdate) -> void
 set whether the GameObject should update every frame, and whether all of it's children should update every frame
virtual auto setShouldRender (const bool _shouldRender) -> void
 set whether the GameObject should render every frame, and whether all of it's children should render every frame
virtual auto setShouldReceiveMessages (const bool _shouldReceiveMessages) -> void
 set whether the GameObject should Receive Messags, and whether all of it's children should receive messages
auto setActive (const bool shouldBeActive) -> void
 set the GameObject should update, render, and receive messages

Static Public Member Functions

static auto getEnum () -> Type
 function required by all systems

Private Member Functions

auto linkMessages () -> void
auto receivePlayAudioMessage (const Message *message) -> Message
auto receivePlayModulatedMessage (const Message *message) -> Message
auto receiveIncreaseVolume (const Message *message) -> Message
 Increase in volume using the '=' key (meant to be plus).
auto receiveDecreaseVolume (const Message *message) -> Message
 Decrease in volume using the '-' key.

Private Attributes

FMOD::System * member
FMOD::ChannelGroup * masterGroup
FMOD::ChannelGroup * musicGroup
FMOD::ChannelGroup * sfxGroup
FMOD::ChannelGroup * uiGroup
FMOD::ChannelGroup * overrideGroup

Additional Inherited Members

Public Types inherited from System
enum class  Type : unsigned short {
  system_error_type = 0 , newSystemStub = 100 , OpenGL = 200 , Input = 300 ,
  Editor = 400 , Messaging = 500 , Camera = 600 , Logging = 700 ,
  AudioSystem = 750 , Scoring = 800 , HandSystem = 900 , SceneManager = 1000 ,
  ActionList = 1100 , DebugDraw = 1150 , TestRunner = 1200 , ColliderSystem = 1300
}
Public Attributes inherited from GameObject
friend Entity
friend Node
friend ChildrenHandeler
friend Engine
Protected Member Functions inherited from System
 System (const std::string &typeName, Type systemType)
Protected Member Functions inherited from GameObject
auto setInternalParent (GameObject *parent) -> bool
 sets the internal parent of a GameObject directly, avoiding abstractions provided by ParentTo().
auto getGameObjectJson () const -> json
 Used for serializing GameObjects.
auto setGameObjectJson (const json &stream) -> void
 used for deserializing GameObjects
virtual auto getChildren () const -> std::shared_ptr< std::vector< GameObject * > >
 gets a vector of a GameObjects public (i.e.
auto checkAddToSceneHook () -> void
 Determine if the GameObject was recently added to the engine, and if it was, call onEngineEnter.

Constructor & Destructor Documentation

◆ AudioSystem() [1/3]

sys::AudioSystem::AudioSystem ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~AudioSystem()

sys::AudioSystem::~AudioSystem ( )
override
Here is the call graph for this function:

◆ AudioSystem() [2/3]

sys::AudioSystem::AudioSystem ( const AudioSystem & other)
Warning
system is not finished will implement a better method later
Here is the call graph for this function:

◆ AudioSystem() [3/3]

sys::AudioSystem::AudioSystem ( AudioSystem && other)
noexcept
Warning
system is not finished will implement a better method later
Here is the call graph for this function:

Member Function Documentation

◆ clone()

auto sys::AudioSystem::clone ( ) const->std::unique_ptr< GameObject >
inlineoverridevirtual

makes a copy a GameObject even if it's held polymorphically

Warning
When overriding this function, make sure to set the parents object to this
Returns
a unique_ptr to a new stack allocated object that is a copy of the object

Implements GameObject.

Here is the call graph for this function:

◆ endWindow()

auto sys::AudioSystem::endWindow ( ) ->void
inlineoverridevirtual

currently unused, but intended to but was assumed to be necessary for a proper ImGui editor

Implements GameObject.

◆ getEnum()

auto sys::AudioSystem::getEnum ( ) ->Type
inlinestatic

function required by all systems

◆ getFMODSystem()

auto sys::AudioSystem::getFMODSystem ( ) ->FMOD::System *
inline

Returns the FMOD system.

Returns
member = pointer to the FMOD system

◆ getMasterChannelGroup()

auto sys::AudioSystem::getMasterChannelGroup ( ) ->FMOD::ChannelGroup *
inline

Returns the master channel group.

Returns
masterGroup = pointer to the master channel group

◆ getMasterVolume()

auto sys::AudioSystem::getMasterVolume ( ) const->float
inline

Returns the master volume for all audio, this will affect all channel groups and sounds that are playing.

Returns
the master volume (0.0f - 1.0f)
Here is the caller graph for this function:

◆ getMusicChannelGroup()

auto sys::AudioSystem::getMusicChannelGroup ( ) ->FMOD::ChannelGroup *
inline

Returns the music channel group.

Returns
musicGroup = pointer to the music channel group

◆ getMusicVolume()

auto sys::AudioSystem::getMusicVolume ( ) const->float
inline

Returns the music volume for all audio in the music channel group, this will affect all sounds that are playing in.

Returns
the music channel volume (0.0f - 1.0f)

◆ getOverrideChannelGroup()

auto sys::AudioSystem::getOverrideChannelGroup ( ) ->FMOD::ChannelGroup *
inline

Returns the override channel group.

Returns
override = pointer to the master channel group

◆ getOverrideVolume()

auto sys::AudioSystem::getOverrideVolume ( ) const->float
inline

Returns the master volume for all audio, this will affect all channel groups and sounds that are playing.

Returns
the master volume (0.0f - 1.0f)

◆ getSFXChannelGroup()

auto sys::AudioSystem::getSFXChannelGroup ( ) ->FMOD::ChannelGroup *
inline

Returns the sfx channel group.

Returns
sfxGroup = pointer to the sfx channel group

◆ getSFXVolume()

auto sys::AudioSystem::getSFXVolume ( ) ->float
inline

Sets the sfx volume for all audio in the sfx channel group, this will affect all sounds that are playing in.

Parameters
volume= volume to set the sfx volume to (0.0f - 1.0f)

◆ getUIChannelGroup()

auto sys::AudioSystem::getUIChannelGroup ( ) ->FMOD::ChannelGroup *
inline

Returns the ui channel group.

Returns
uiGroup = pointer to the ui channel group

◆ getUIVolume()

auto sys::AudioSystem::getUIVolume ( ) const->float
inline

Returns the ui volume for all audio in the ui channel group, this will affect all sounds that are playing

Returns
ui channel volume (0.0f - 1.0f)

◆ linkMessages()

auto sys::AudioSystem::linkMessages ( ) ->void
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ load()

auto sys::AudioSystem::load ( Stream & stream) ->void
overridevirtual

Implementations will load the state of a GameObject from a th::Json Object.

Unimplemented in GameObject

Parameters
streamth::Json Object

Implements GameObject.

◆ onRender()

auto sys::AudioSystem::onRender ( ) ->void
overridevirtual

called every frame after update has been called for every object.

Generally used for rendering an object to the screen, when applicable. Unimplemented in GameObject

Implements GameObject.

◆ onUpdate()

auto sys::AudioSystem::onUpdate ( float dt) ->void
overridevirtual

called once every frame.

Generally used for timers, movement, condition checks, etc. Unimplemented in GameObject

Parameters
dtthe time in seconds that has elapsed

Implements GameObject.

Here is the call graph for this function:

◆ operator=() [1/2]

auto sys::AudioSystem::operator= ( AudioSystem && other) ->AudioSystem &
noexcept
Warning
system is not finished will implement a better method later
Here is the call graph for this function:

◆ operator=() [2/2]

auto sys::AudioSystem::operator= ( const AudioSystem & other) ->AudioSystem &
Here is the call graph for this function:

◆ receiveDecreaseVolume()

auto sys::AudioSystem::receiveDecreaseVolume ( const Message * message) ->Message
private

Decrease in volume using the '-' key.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ receiveIncreaseVolume()

auto sys::AudioSystem::receiveIncreaseVolume ( const Message * message) ->Message
private

Increase in volume using the '=' key (meant to be plus).

Here is the call graph for this function:
Here is the caller graph for this function:

◆ receivePlayAudioMessage()

auto sys::AudioSystem::receivePlayAudioMessage ( const Message * message) ->Message
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ receivePlayModulatedMessage()

auto sys::AudioSystem::receivePlayModulatedMessage ( const Message * message) ->Message
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ save()

auto sys::AudioSystem::save ( Stream & stream) const->void
overridevirtual

Implementations will load the state of a GameObject to a th::Json object.

Unimplemented in GameObject

Parameters
streamth::Json Object

Implements GameObject.

◆ setMasterPitch()

auto sys::AudioSystem::setMasterPitch ( float gain) ->void
inline

Set the gain of the low pass filter 0 for full quiet and 1 for full volume.

◆ setMasterVolume()

auto sys::AudioSystem::setMasterVolume ( float volume) ->void
inline

Sets the master volume for all audio, this will affect all channel groups and sounds that are playing.

Parameters
volume= volume to set the master volume to (0.0f - 1.0f)
Here is the caller graph for this function:

◆ setMusicPitch()

auto sys::AudioSystem::setMusicPitch ( float gain) ->void
inline

Set the gain of the low pass filter 0 for full quiet and 1 for full volume.

Here is the caller graph for this function:

◆ setMusicVolume()

auto sys::AudioSystem::setMusicVolume ( float volume) ->void
inline

Sets the music volume for all audio in the music channel group, this will affect all sounds that are playing in the music channel group.

Parameters
volume= volume to set the music volume to (0.0f - 1.0f)
Here is the caller graph for this function:

◆ setOverridePitch()

auto sys::AudioSystem::setOverridePitch ( float gain) ->void
inline

Set the gain of the low pass filter 0 for full quiet and 1 for full volume.

◆ setOverrideVolume()

auto sys::AudioSystem::setOverrideVolume ( float volume) ->void
inline

Sets the master volume for all audio, this will affect all channel groups and sounds that are playing.

Parameters
volume= volume to set the master volume to (0.0f - 1.0f)

◆ setSFXPitch()

auto sys::AudioSystem::setSFXPitch ( float gain) ->void
inline

Set the gain of the low pass filter 0 for full quiet and 1 for full volume.

Here is the caller graph for this function:

◆ setSFXVolume()

auto sys::AudioSystem::setSFXVolume ( float volume) ->void
inline

Sets the sfx volume for all audio in the sfx channel group, this will affect all sounds that are playing in.

Parameters
volume= volume to set the sfx volume to (0.0f - 1.0f)
Here is the caller graph for this function:

◆ setUIPitch()

auto sys::AudioSystem::setUIPitch ( float gain) ->void
inline

Set the gain of the low pass filter 0 for full quiet and 1 for full volume.

Here is the caller graph for this function:

◆ setUIVolume()

auto sys::AudioSystem::setUIVolume ( float volume) ->void
inline

Sets the ui volume for all audio in the ui channel group, this will affect all sounds that are playing in

Parameters
volume= volume to set the ui volume to (0.0f - 1.0f)
Here is the caller graph for this function:

◆ stopAll()

auto sys::AudioSystem::stopAll ( ) ->void

Stops all current tracks playing.

Here is the call graph for this function:

◆ systemShowMenu()

auto sys::AudioSystem::systemShowMenu ( ) ->void
overridevirtual

Specific systems should override this function to show their specific menu for the system.

Reimplemented from System.

Here is the call graph for this function:

Member Data Documentation

◆ masterGroup

FMOD::ChannelGroup* sys::AudioSystem::masterGroup
private

◆ member

FMOD::System* sys::AudioSystem::member
private

◆ musicGroup

FMOD::ChannelGroup* sys::AudioSystem::musicGroup
private

◆ overrideGroup

FMOD::ChannelGroup* sys::AudioSystem::overrideGroup
private

◆ sfxGroup

FMOD::ChannelGroup* sys::AudioSystem::sfxGroup
private

◆ uiGroup

FMOD::ChannelGroup* sys::AudioSystem::uiGroup
private

The documentation for this class was generated from the following files: