ClanSoft logo
ClanSoft logo
Entire Class Index Main Class Index Cross Index Global Index

Class CL_SoundBuffer_Session

CL_SoundBuffer_Session provides control over a playing soundeffect.
Contained in: global
Derived from: none
Derived by: none
Group: Sound (Audio Mixing)

#include <ClanLib/sound.h>


public function member index:

Construction:

CL_SoundBuffer_Session();
CL_SoundBuffer_Session(void* handle, CL_SoundCard* _card);
CL_SoundBuffer_Session(const CL_SoundBuffer_Session& copy);
~CL_SoundBuffer_Session();

Operators:

CL_SoundBuffer_Session& operator =(const CL_SoundBuffer_Session& session);

Attributes:

void* get_handle() const;
CL_SoundCard* get_card() const;
int get_position() const;
float get_position_relative() const;
bool set_position(int new_pos);
bool set_position_relative(float new_pos);
int get_length() const;
int get_frequency() const;
bool set_frequency(int new_freq);
float get_volume() const;
float get_pan() const;

Operations:

bool set_volume(float new_volume);
bool set_pan(float new_pan);
void play();
void stop();
bool is_playing();
void set_looping(bool loop);
void add_filter(class CL_SoundFilter* filter, bool delete_filter = false);
void remove_filter(class CL_SoundFilter* filter);
 

Description:

Whenever a soundbuffer is played, it returns a CL_SoundBuffer_Session class, which can be used to control the sound (its volume, pitch, pan, position). It can of course also be used to retrigger the sound or to stop it. The soundeffect is stored in the layer1 soundmanager until all references to the sound played are removed, meaning that the soundeffect (session) will be ready to play and remember its state and settings (volume, frequency...) until no CL_SoundBuffer_Session refers to it, via a soundbuffer session reference system.


Function Member Descriptions:

CL_SoundBuffer_Session::CL_SoundBuffer_Session - Creates a soundbuffer session not attached to any object.
CL_SoundBuffer_Session();


CL_SoundBuffer_Session::CL_SoundBuffer_Session - Sound Buffer Session Constructor
CL_SoundBuffer_Session(void* handle, CL_SoundCard* _card);


CL_SoundBuffer_Session::CL_SoundBuffer_Session - Copy constructor.
CL_SoundBuffer_Session(const CL_SoundBuffer_Session& copy);


CL_SoundBuffer_Session::add_filter - Adds the sound filter to the session. See CL_SoundFilter for details.
void add_filter(class CL_SoundFilter* filter, bool delete_filter = false);
filter - Sound filter to pass sound through.
delete_filter - If true, the filter will be deleted when the session is destroyed.



CL_SoundBuffer_Session::get_card - Returns a pointer to the card on which the soundbuffer controlled
is played/playing.
CL_SoundCard* get_card() const;
Returns - Pointer to soundcard



CL_SoundBuffer_Session::get_frequency - Returns the frequency of the soundeffect played.
int get_frequency() const;
Returns - Frequency of soundeffect played.



CL_SoundBuffer_Session::get_handle - Get Handle
void* get_handle() const;


CL_SoundBuffer_Session::get_length - Returns the total length of the soundeffect played.
Value returned will be -1 if the length is unknown (in case of non-static soundeffects like streamed sound)
int get_length() const;
Returns - Length of the soundeffect.



CL_SoundBuffer_Session::get_pan - Returns the current pan (in a measure from -1 -> 1), where -1 means the soundeffect is only playing in the left speaker, and 1 means the soundeffect is only playing in the right speaker.
float get_pan() const;
Returns - Current pan of the soundeffect played.



CL_SoundBuffer_Session::get_position - Returns the current position of the soundeffect
int get_position() const;
Returns - Current position of soundeffect.



CL_SoundBuffer_Session::get_position_relative - Returns the soundeffects relative position, compared to the total length of the soundeffect.
The value returned will be between 0->1, where 0 means the soundeffect is at the beginning, and 1 means that the soundeffect has reached the end.
float get_position_relative() const;
Returns - Relative position of the soundeffect.



CL_SoundBuffer_Session::get_volume - Returns the linear relative volume of the soundeffect.
0 means the soundeffect is muted, 1 means the soundeffect is playing at "max" volume.
float get_volume() const;
Returns - Volume of soundeffect played.



CL_SoundBuffer_Session::is_playing - Returns true if the session is playing
bool is_playing();


CL_SoundBuffer_Session::operator = - Copy operator
CL_SoundBuffer_Session& operator =(const CL_SoundBuffer_Session& session);


CL_SoundBuffer_Session::play - Starts playback of the session.
void play();


CL_SoundBuffer_Session::remove_filter - Remove the sound filter from the session. See CL_SoundFilter for details.
void remove_filter(class CL_SoundFilter* filter);


CL_SoundBuffer_Session::set_frequency - Sets the frequency of the soundeffect played.
bool set_frequency(int new_freq);
New frequency of soundeffect.
Returns - Returns true, if the operation completed succesfully.



CL_SoundBuffer_Session::set_looping - Determines whether this session should loop
void set_looping(bool loop);
loop - true if session should loop, false otherwise



CL_SoundBuffer_Session::set_pan - Sets the panning of the soundeffect played in measures from -1 -> 1
Setting the pan with a value of -1 will pan the soundeffect to the extreme left (left speaker only), 1 will pan the soundeffect to the extreme right (right speaker only).
bool set_pan(float new_pan);
new_pan - New pan of the soundeffect played.
Returns - Returns true if the operation completed sucecsfully.



CL_SoundBuffer_Session::set_position - Sets the soundeffects position to 'new_pos'.
bool set_position(int new_pos);
The new position of the soundeffect.
Returns - Returns true if operation completed succesfully.



CL_SoundBuffer_Session::set_position_relative - Sets the relative position of the soundeffect.
Value must be between 0->1, where 0 sets the soundeffect to the beginning, and 1 sets it to the end of the soundbuffer.
bool set_position_relative(float new_pos);
New relative position
Returns - Returns true if operation completed succesfully.



CL_SoundBuffer_Session::set_volume - Sets the volume of the soundeffect in a relative measure (0->1)
A value of 0 will effectively mute the sound (although it will still be sampled), and a value of 1 will set the volume to "max".
bool set_volume(float new_volume);
new_volume - New volume of soundeffect
Returns - Returns true if the operation completed succesfully.



CL_SoundBuffer_Session::stop - Stops playback of the session.
void stop();


CL_SoundBuffer_Session::~CL_SoundBuffer_Session - Sound Buffer Session Destructor
~CL_SoundBuffer_Session();



Variable Member Descriptions: