# class ClientSound | A sound file. More...
Full name | `TelEngine::ClientSound`
Definition | `#include <yatecbase.h>`
Inherits | TelEngine::String [public ]
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

#### Public Methods

- inline ClientSound (const char* name, const char* file, const char* device = 0)
- virtual ~ClientSound ()
- virtual void destruct ()
- inline bool native () const
- inline bool started () const
- inline const String& device () const
- inline void device (const char* dev)
- inline const String& file () const
- inline void file (const char* filename, bool stereo)
- inline void setRepeat (unsigned int count)
- inline bool stereo () const
- bool start (bool force = true)
- void stop ()
- void setChannel (const String& chan, bool ok)
- bool attachSource (ClientChannel* chan)

#### Public Static Methods

- static bool build (const String& id, const char* file, const char* device = 0, unsigned int repeat = 0, bool resetExisting = true, bool stereo = false)
- static bool started (const String& name)
- static bool start (const String& name, bool force = true)
- static void stop (const String& name)
- static ClientSound* find (const String& token, bool byName = true)

#### Public Members

- static ObjList s_sounds
- static Mutex s_soundsMutex
- static String s_calltoPrefix

#### Protected Methods

- virtual bool doStart ()
- virtual void doStop ()

#### Protected Members

- bool m_native
- String m_file
- String m_device
- unsigned int m_repeat
- bool m_started
- bool m_stereo
- String m_channel

## Detailed Description

This class holds a sound file along with an output device used to play it

inline ClientSound (const char* name, const char* file, const char* device = 0) | ### ClientSound

Constructor

Parameters:

name | The name of this object
file | The file to play (should contain the whole path and the file name)
device | Optional device used to play the file. Set to 0 to use the default one

~ClientSound () | ### ~ClientSound

[virtual]

Destructor. Stop playing the file

void destruct () | ### destruct

[virtual]

Stop playing. Release memory

Reimplemented from GenObject.

inline bool native () | ### native

[const]

Check if this sound is a system dependent one

Returns: True if the sound is played using a system dependent method, false if played using a yate module (like wavefile)

inline bool started () | ### started

[const]

Check if this sound is started

Returns: True if this sound is started

inline const String& device () | ### device

[const]

Get the device used to play this sound

Returns: The device used to play sound

inline void device (const char* dev) | ### device

Set the device used to play this sound

Parameters:

dev | The device used to play sound

inline const String& file () | ### file

[const]

Get the file played by this sound

Returns: The file played by this sound

inline void file (const char* filename, bool stereo) | ### file

Set the file played by this sound. The new file will not be used until the next time the sound is started

Parameters:

filename | The new file played by this sound
stereo | True if the file contains 2 channel audio

inline void setRepeat (unsigned int count) | ### setRepeat

Set the repeat counter.

Parameters:

count | The number of times to play the sound, 0 to repeat until explicitely stopped

inline bool stereo () | ### stereo

[const]

Check if this sound's file contains 2 channel audio

Returns: True if the sound file contains 2 channel audio

bool start (bool force = true) | ### start

Start playing the file

Parameters:

force | True to start playing the file even if already started

Returns: True on success

void stop () | ### stop

Stop playing the file

void setChannel (const String& chan, bool ok) | ### setChannel

Set/reset channel on sound start/stop

Parameters:

chan | The channel id
ok | Operation: true to start, false to stop

bool attachSource (ClientChannel* chan) | ### attachSource

Attach this sound to a channel

Parameters:

chan | The channel to attach to

Returns: True on success

bool build (const String& id, const char* file, const char* device = 0, unsigned int repeat = 0, bool resetExisting = true, bool stereo = false) | ### build

[static]

Build a client sound

Parameters:

id | The name of the object
file | The file to play (should contain the whole path and the file name)
device | Optional device used to play the file. Set to 0 to use the default one
repeat | The number of times to play the sound, 0 to repeat until explicitely stopped
resetExisting | True to reset the file of an already created sound
stereo | True if the sound file contains 2 channel audio

Returns: True on success, false if the sound already exists

bool started (const String& name) | ### started

[static]

Check if a sound is started

Parameters:

name | The name of the sound to check

Returns: True if the given sound is started

bool start (const String& name, bool force = true) | ### start

[static]

Start playing a given sound

Parameters:

name | The name of the sound to play
force | True to start playing the file even if already started

Returns: True on success

void stop (const String& name) | ### stop

[static]

Stop playing a given sound

Parameters:

name | The name of the sound to stop

ClientSound* find (const String& token, bool byName = true) | ### find

[static]

Find a sound object

Parameters:

token | The token used to match the sound
byName | True to match the sound's name, false to match its file

Returns: ClientSound pointer or 0 if not found

Reimplemented from String.

static ObjList s_sounds | ### s_sounds

static Mutex s_soundsMutex | ### s_soundsMutex

static String s_calltoPrefix | ### s_calltoPrefix

bool doStart () | ### doStart

[protected virtual]

The prefix to be added to the file when an utility channel is started or a sound is played in a regular client channel

void doStop () | ### doStop

[protected virtual]

bool m_native | ### m_native

[protected]

String m_file | ### m_file

[protected]

String m_device | ### m_device

[protected]

unsigned int m_repeat | ### m_repeat

[protected]

bool m_started | ### m_started

[protected]

bool m_stereo | ### m_stereo

[protected]

String m_channel | ### m_channel

[protected]

Generated by: paulc on bussard on Fri May 8 12:37:22 2015, using kdoc 2.0a54.