Aspen
2D C++ Class-Based Object Oriented Game Engine
|
SoundEffect class. More...
#include <Audio.hpp>
Public Member Functions | |
SoundEffect (Object *parent=nullptr, std::string name="SoundEffect") | |
Constructor. More... | |
SoundEffect (std::string path, Object *parent=nullptr, std::string name="SoundEffect") | |
Constructor Derived classes should call this in their constructors' initialization list. More... | |
void | End () |
Shuts down and invalidates Object and all of its children An invalid child Object will be deleted by their parent after they update. | |
void | SetPath (std::string path) |
Sets the file path and loads the new file. More... | |
std::string | GetPath () |
Gets the file path. More... | |
Mix_Chunk * | GetSound () |
Gets the unwrapped SDL_Mixer sound chunk. More... | |
bool | Load () |
Loads the current file path. More... | |
void | Play (int channel=-1) |
Plays the sound on a given channel. More... | |
void | Stop () |
Stops any instance of the sound currently playing. | |
bool | IsPlayingOn (int channel) |
Determines if the sound is playing on a given channel. More... | |
bool | IsPlaying () |
Determines if the sound is playing on any channel. More... | |
void | OnDeactivate () |
Stops any instance of the sound on deactivation This should be called or reimplemented by derived classes. | |
Public Member Functions inherited from Aspen::Object::Object | |
Object (Object *parent=nullptr, std::string name="Object") | |
Constructor Derived classes should call this in their constructors' initialization list. More... | |
virtual | ~Object () |
Destructor This will End and then delete all child Objects. | |
const Object * | Parent () const |
Gets the parent of this Object. More... | |
Object * | Parent () |
Gets the parent of this Object. More... | |
const Object * | Root () const |
Gets the root Object of the parent/child tree this Object is a part of. More... | |
Object * | Root () |
Gets the root Object of the parent/child tree this Object is a part of. More... | |
Transform::Transform * | GetTransform () |
Gets the first child Transform::Transform. More... | |
const Transform::Transform * | GetTransform () const |
Gets the first child Transform::Transform. More... | |
Physics::Collider * | GetCollider () |
Gets the first child Physics::Collider. More... | |
const Physics::Collider * | GetCollider () const |
Gets the first child Physics::Collider. More... | |
Physics::Rigidbody * | GetRigidbody () |
Gets the first child Physics::Rigidbody. More... | |
const Physics::Rigidbody * | GetRigidbody () const |
Gets the first child Physics::Rigidbody. More... | |
virtual void | operator() () |
Updates this object and all of its children Derived classes should call or reimplement this at some point in their operator() This won't run if the Object isn't Active. | |
void | AddChild (Object *child) |
Adds child to this Object's list of children This will also set child's _parent to this This will do nothing if child is already in the list of children Useful for adding an already created Object as a child or passing in the return operator new with parameters. More... | |
template<typename T > | |
T * | CreateChild () |
Creates a new child of type T Useful for creating an object with no constructor parameters and/or modifying it later. More... | |
template<typename T > | |
T * | CreateChild (std::string name) |
Creates a new child of type T Useful for creating an object with no constructor parameters and/or modifying it later. More... | |
void | RemoveChild (Object *child) |
Removes child from this Object's list of children This will also set child's _parent to nullptr This will do nothing if child is not in the Object's list of children. More... | |
void | RemoveChild (unsigned index) |
Removes the child at index from this Object's list of children This will also set the child's _parent to nullptr This will do nothing if index is out of range of the Object's list of children. More... | |
Object * | operator[] (unsigned index) |
Gets the child at index from this Object's list of children. More... | |
int | operator[] (Object *child) |
Gets the index of a given child in this Object's list of children. More... | |
Object * | GetLastChild () |
Gets the youngest child from this Object's list of children. More... | |
int | ParentCount () |
Determines the generation of this object in the parent/child tree. More... | |
template<typename T > | |
T * | FindAncestorOfType () const |
Finds the closest ancestor Object of a type applicable to that which was requested. More... | |
template<typename T > | |
const T * | FindChildOfType () const |
Finds the first child Object of a type applicable to that which was requested. More... | |
template<typename T > | |
T * | FindChildOfType () |
Finds the first child Object of a type applicable to that which was requested. More... | |
template<typename T > | |
const std::vector< T * > | FindChildrenOfType () const |
Finds all children Objects of a type applicable to that which was requested. More... | |
template<typename T > | |
std::vector< T * > | FindChildrenOfType () |
Finds all children Objects of a type applicable to that which was requested. More... | |
template<typename T > | |
const std::vector< T * > | FindDescendentsOfType () const |
Recursively finds all descendent Objects of a type applicable to that which was requested. More... | |
template<typename T > | |
std::vector< T * > | FindDescendentsOfType () |
Recursively finds all descendent Objects of a type applicable to that which was requested. More... | |
const bool & | Valid () const |
Determines if the Object is valid. More... | |
bool | Active () const |
Determines if the Object is active. More... | |
void | SetActive (bool active) |
Sets active status of the object Triggers OnActivate or OnDeactivate appropriately. More... | |
void | Activate () |
Activates the object Triggers OnActivate appropriately. | |
void | Deactivate () |
Deactivates the object Triggers OnDeactivate appropriately. | |
operator bool () const | |
Converts Object to bool by calling Valid Example: ``` Object o; while (o) o(); ```. | |
void | PrintTree (Log::Log &log) const |
Uses Log::Log to print the parent/children tree of this Object. More... | |
void | PrintTree () const |
Uses Log::Log to print the parent/children tree of this Object Uses Log::Debug. | |
std::string | Name () const |
Gets the Object's name. More... | |
unsigned | ChildrenCount () const |
Determines the number of immediate children the Object has. More... | |
std::vector< Object * > & | Children () |
Gets the list of Objects that are children of this Object. More... | |
bool | HasAncestor (const Object *other) const |
Determines if the provided Object is an ancestor of this Object. More... | |
virtual void | PopulateDebugger () |
Fills out the Debugger if it exists with this Object's information Derived classes should call their base class's version of this method. | |
virtual void | OnStart () |
Run when the Object is created. | |
virtual void | OnActivate () |
Run when the Object is activated Run after OnStart. | |
virtual void | OnUpdate () |
Run every frame. | |
virtual void | OnEarlyUpdate () |
Run before OnUpdate. | |
virtual void | OnLateUpdate () |
Run after OnUpdate. | |
virtual void | OnEnd () |
Run when the Object is ended/destroyed. | |
virtual void | OnCollision (Physics::Collision c) |
Run when a collision occurs. More... | |
virtual void | OnMouseEnter () |
Run when the mouse enters the Object. | |
virtual void | OnMouseOver () |
Run while the mouse is over the Object. | |
virtual void | OnMouseExit () |
Run when the mouse leaves the Object. | |
virtual void | OnMouseClick () |
Run when the mouse is clicked while over the Object. | |
virtual void | OnMouseRelease () |
Run when the mouse is released while over the Object. | |
Private Attributes | |
std::string | _path |
Path to the soundeffect file. | |
Mix_Chunk * | _sound |
Loaded sound chunk. | |
std::vector< unsigned > | _channels |
Channels the sound has been played on. | |
Additional Inherited Members | |
Protected Member Functions inherited from Aspen::Object::Object | |
void | SetParent (Object *parent) |
Sets _parent to the given Object Used by AddChild, CreateChild, etc. | |
void | TriggerOnStart () |
Runs OnStart if the object is currently active for the first time. | |
void | TriggerOnActivate () |
Runs OnActivate if the object is currently active. | |
void | TriggerOnDeactivate () |
Runs OnDeactivate if the object is currently active (being deactivated) | |
Protected Attributes inherited from Aspen::Object::Object | |
const std::string | _name |
Name of object. | |
Object * | _parent |
Parent/owner of this Object. | |
std::vector< Object * > | _children |
List of children Objects. | |
bool | _valid |
Determines if the Object is valid Derived classes can set this to false in their Constructors if they couldn't be created properly. | |
bool | _active |
Determines if the Object is currently updated. | |
bool | _started |
Determines if the Object has been started Set to true during the first update. | |
Transform::Transform * | _transform |
First child Transform::Transform. | |
Physics::Collider * | _collider |
First child Physics::Collider. | |
Physics::Rigidbody * | _rigidbody |
First child Physics::Rigidbody. | |
Static Protected Attributes inherited from Aspen::Object::Object | |
static int | _count |
Total number of Objects in existence. | |
SoundEffect class.
Aspen::Audio::SoundEffect::SoundEffect | ( | Object * | parent = nullptr , |
std::string | name = "SoundEffect" |
||
) |
Aspen::Audio::SoundEffect::SoundEffect | ( | std::string | path, |
Object * | parent = nullptr , |
||
std::string | name = "SoundEffect" |
||
) |
std::string Aspen::Audio::SoundEffect::GetPath | ( | ) |
Gets the file path.
Mix_Chunk* Aspen::Audio::SoundEffect::GetSound | ( | ) |
Gets the unwrapped SDL_Mixer sound chunk.
bool Aspen::Audio::SoundEffect::IsPlaying | ( | ) |
Determines if the sound is playing on any channel.
bool Aspen::Audio::SoundEffect::IsPlayingOn | ( | int | channel | ) |
Determines if the sound is playing on a given channel.
channel | Channel to test |
bool Aspen::Audio::SoundEffect::Load | ( | ) |
Loads the current file path.
void Aspen::Audio::SoundEffect::Play | ( | int | channel = -1 | ) |
Plays the sound on a given channel.
channel | Channel to play on If this is -1, the first available channel will be selected |
void Aspen::Audio::SoundEffect::SetPath | ( | std::string | path | ) |
Sets the file path and loads the new file.
path | New path |