Yate
ClientSound Class Reference

A sound file. More...

#include <yatecbase.h>

Inheritance diagram for ClientSound:
String GenObject

Public Member Functions

 ClientSound (const char *name, const char *file, const char *device=0)
virtual ~ClientSound ()
virtual void destruct ()
bool native () const
bool started () const
const Stringdevice () const
void device (const char *dev)
const Stringfile () const
void file (const char *filename, bool stereo)
void setRepeat (unsigned int count)
bool stereo () const
bool start (bool force=true)
void stop ()
void setChannel (const String &chan, bool ok)
bool attachSource (ClientChannel *chan)
Public Member Functions inherited from String
 String ()
 String (const char *value, int len=-1)
 String (char value, unsigned int repeat=1)
 String (int32_t value)
 String (uint32_t value)
 String (int64_t value)
 String (uint64_t value)
 String (bool value)
 String (double value)
 String (const String &value)
 String (const String *value)
virtual ~String ()
virtual void * getObject (const String &name) const
const char * c_str () const
const char * safe () const
const char * safe (const char *defStr) const
unsigned int length () const
bool null () const
int lenUtf8 (uint32_t maxChar=0x10ffff, bool overlong=false) const
int fixUtf8 (const char *replace=0, uint32_t maxChar=0x10ffff, bool overlong=false)
unsigned int encodeFlags (const TokenDict *tokens) const
uint64_t encodeFlags (const TokenDict64 *tokens) const
StringdecodeFlags (unsigned int flags, const TokenDict *tokens, bool unknownflag=true)
StringdecodeFlags (uint64_t flags, const TokenDict64 *tokens, bool unknownflag=true)
bool checkBOM () const
bool stripBOM ()
unsigned int hash () const
void clear ()
char at (int index) const
String substr (int offs, int len=-1) const
StringtrimBlanks ()
StringtrimSpaces ()
virtual const StringtoString () const
int toInteger (int defvalue=0, int base=0, int minvalue=INT_MIN, int maxvalue=INT_MAX, bool clamp=true) const
int toInteger (const TokenDict *tokens, int defvalue=0, int base=0) const
int toInteger (const TokenDictStr *tokens, int defvalue=0, int base=0) const
long int toLong (long int defvalue=0, int base=0, long int minvalue=LONG_MIN, long int maxvalue=LONG_MAX, bool clamp=true) const
int64_t toInt64 (int64_t defvalue=0, int base=0, int64_t minvalue=LLONG_MIN, int64_t maxvalue=LLONG_MAX, bool clamp=true) const
int64_t toInt64Dict (const TokenDict64 *tokens, int64_t defvalue=0, int base=0) const
int64_t toInt64Dict (const TokenDictStr64 *tokens, int64_t defvalue=0, int base=0) const
uint64_t toUInt64 (uint64_t defvalue=0, int base=0, uint64_t minvalue=0, uint64_t maxvalue=ULLONG_MAX, bool clamp=true) const
double toDouble (double defvalue=0.0) const
bool toBoolean (bool defvalue=false) const
bool isBoolean () const
StringtoUpper ()
StringtoLower ()
char operator[] (signed int index) const
char operator[] (unsigned int index) const
 operator const char * () const
Stringassign (const char *value, int len=-1)
Stringassign (char value, unsigned int repeat=1)
Stringhexify (const void *data, unsigned int len, char sep=0, bool upCase=false)
Stringoperator= (const String &value)
Stringoperator= (const String *value)
Stringoperator= (const char *value)
Stringoperator= (char value)
Stringoperator= (int32_t value)
Stringoperator= (uint32_t value)
Stringoperator= (int64_t value)
Stringoperator= (uint64_t value)
Stringoperator= (bool value)
Stringoperator= (double value)
Stringoperator+= (const char *value)
Stringoperator+= (char value)
Stringoperator+= (int32_t value)
Stringoperator+= (uint32_t value)
Stringoperator+= (int64_t value)
Stringoperator+= (uint64_t value)
Stringoperator+= (bool value)
Stringoperator+= (double value)
bool operator== (const char *value) const
bool operator!= (const char *value) const
bool operator== (const String &value) const
bool operator!= (const String &value) const
bool operator&= (const char *value) const
bool operator|= (const char *value) const
Stringoperator<< (const char *value)
Stringoperator<< (char value)
Stringoperator<< (int32_t value)
Stringoperator<< (uint32_t value)
Stringoperator<< (int64_t value)
Stringoperator<< (uint64_t value)
Stringoperator<< (bool value)
Stringoperator<< (double value)
Stringoperator>> (const char *skip)
Stringoperator>> (char &store)
Stringoperator>> (UChar &store)
Stringoperator>> (int &store)
Stringoperator>> (unsigned int &store)
Stringoperator>> (bool &store)
Stringappend (const char *value, int len)
Stringappend (const char *value, const char *separator=0, bool force=false)
Stringappend (const ObjList *list, const char *separator=0, bool force=false)
Stringappend (const ObjList &list, const char *separator=0, bool force=false)
Stringappend (char value, unsigned int len=1)
Stringappend (double value, unsigned int decimals=3)
Stringinsert (unsigned int pos, const char *value, int len=-1)
Stringinsert (unsigned int pos, char value, unsigned int len=1)
Stringprintf (const char *format,...)
Stringprintf (unsigned int length, const char *format,...)
StringprintfAppend (const char *format,...)
StringprintfAppend (unsigned int length, const char *format,...)
StringappendFixed (unsigned int fixedLength, const char *str, unsigned int len=-1, char fill=' ', int align=Left)
StringappendFixed (unsigned int fixedLength, const String &str, char fill=' ', int align=Left)
int find (char what, unsigned int offs=0) const
int find (const char *what, unsigned int offs=0) const
int rfind (char what) const
int rfind (const char *what) const
bool startsWith (const char *what, bool wordBreak=false, bool caseInsensitive=false) const
bool endsWith (const char *what, bool wordBreak=false, bool caseInsensitive=false) const
bool startSkip (const char *what, bool wordBreak=true, bool caseInsensitive=false)
StringreplaceChars (const char *what, const char *repl, bool inPlace=false, int wLen=-1, int rLen=-1, bool *chg=0)
StringremoveChars (const char *what, int wLen=-1, bool *chg=0)
StringextractTo (const char *sep, String &store)
StringextractTo (const char *sep, bool &store)
StringextractTo (const char *sep, int &store, int base=0)
StringextractTo (const char *sep, int &store, const TokenDict *tokens, int base=0)
StringextractTo (const char *sep, double &store)
virtual bool matches (const String &value) const
bool matches (const Regexp &rexp)
int matchOffset (int index=0) const
int matchLength (int index=0) const
String matchString (int index=0) const
String replaceMatches (const String &templ) const
int matchCount () const
ObjListsplit (ObjList &list, char separator, bool emptyOK=true) const
ObjListsplit (ObjList &list, const Regexp &reg, bool emptyOK=true) const
ObjListsplit (char separator, bool emptyOK=true) const
ObjListsplit (const Regexp &reg, bool emptyOK=true) const
String msgEscape (char extraEsc=0) const
String msgUnescape (int *errptr=0, char extraEsc=0) const
String sqlEscape (char extraEsc=0) const
StringuriEscapeTo (String &buf, char extraEsc=0, const char *noEsc=0) const
String uriEscape (char extraEsc=0, const char *noEsc=0) const
StringuriUnescapeTo (String &buf, bool setPartial=false, int *errptr=0) const
StringuriUnescapeStr (bool setPartial=false, int *errptr=0)
String uriUnescape (int *errptr=0, bool setPartial=true) const
Public Member Functions inherited from GenObject
 GenObject ()
virtual ~GenObject ()
virtual bool alive () const
virtual const StringtraceId () const
NamedCountergetObjCounter () const
NamedCountersetObjCounter (NamedCounter *counter)

Static Public Member Functions

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 ClientSoundfind (const String &token, bool byName=true)
Static Public Member Functions inherited from String
static const Stringempty ()
static const char * boolText (bool value)
static int lenUtf8 (const char *value, uint32_t maxChar=0x10ffff, bool overlong=false)
static bool checkBOM (const char *str)
static bool stripBOM (const char *&str)
static bool stripBOM (char *&str)
static unsigned int hash (const char *value, unsigned int h=0)
static String msgEscape (const char *str, char extraEsc=0)
static String msgUnescape (const char *str, int *errptr=0, char extraEsc=0)
static String sqlEscape (const char *str, char extraEsc=0)
static StringuriEscapeTo (String &buf, const char *str, char extraEsc=0, const char *noEsc=0)
static StringuriEscapeTo (String &buf, const char *str, const char *extraEsc, const char *noEsc=0)
static String uriEscape (const char *str, char extraEsc=0, const char *noEsc=0)
static String uriEscape (const char *str, const char *extraEsc, const char *noEsc=0)
static StringuriUnescapeTo (String &buf, const char *str, bool setPartial=false, int *errptr=0)
static String uriUnescape (const char *str, int *errptr=0, bool setPartial=true)
static const Stringatom (const String *&str, const char *val)
static unsigned int c_starts_with (const char *str, const char *what, int lenStr=-1, int lenWhat=-1, bool caseInsensitive=false)
static unsigned int c_ends_with (const char *str, const char *what, int lenStr=-1, int lenWhat=-1, bool caseInsensitive=false)
static unsigned int c_skip (const char *&str, const char *what, int lenStr=-1, int lenWhat=-1, bool caseInsensitive=false)
static unsigned int c_skip_chars (const char *&str, const char *what, int len=-1, bool skipFound=true)
static char * c_replace_chars (const char *str, const char *what, const char *repl=0, bool inPlace=false, int wLen=-1, int rLen=-1, bool *chg=0)
Static Public Member Functions inherited from GenObject
static void * getObject (const String &name, const GenObject *obj)
static bool getObjCounting ()
static void setObjCounting (bool enable)
static NamedCountergetObjCounter (const String &name, bool create=true)
static ObjListgetObjCounters ()

Static Public Attributes

static ObjList s_sounds
static Mutex s_soundsMutex
static String s_calltoPrefix

Protected Member Functions

virtual bool doStart ()
virtual void doStop ()
Protected Member Functions inherited from String
virtual void changed ()

Protected Attributes

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

Additional Inherited Members

Public Types inherited from String
enum  Align { Left = 0 , Center , Right }

Detailed Description

A sound file.

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

Constructor & Destructor Documentation

◆ ClientSound()

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

Constructor

Parameters
nameThe name of this object
fileThe file to play (should contain the whole path and the file name)
deviceOptional device used to play the file. Set to 0 to use the default one

References device(), file(), and String::String().

Referenced by find().

◆ ~ClientSound()

virtual ~ClientSound ( )
inlinevirtual

Destructor. Stop playing the file

References stop().

Member Function Documentation

◆ attachSource()

bool attachSource ( ClientChannel * chan)

Attach this sound to a channel

Parameters
chanThe channel to attach to
Returns
True on success

◆ build()

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

Build a client sound

Parameters
idThe name of the object
fileThe file to play (should contain the whole path and the file name)
deviceOptional device used to play the file. Set to 0 to use the default one
repeatThe number of times to play the sound, 0 to repeat until explicitely stopped
resetExistingTrue to reset the file of an already created sound
stereoTrue if the sound file contains 2 channel audio
Returns
True on success, false if the sound already exists

References device(), file(), stereo(), and String::String().

◆ destruct()

virtual void destruct ( )
inlinevirtual

Stop playing. Release memory

Reimplemented from GenObject.

References GenObject::destruct(), and stop().

◆ device() [1/2]

const String & device ( ) const
inline

Get the device used to play this sound

Returns
The device used to play sound

References String::String().

Referenced by build(), and ClientSound().

◆ device() [2/2]

void device ( const char * dev)
inline

Set the device used to play this sound

Parameters
devThe device used to play sound

References s_soundsMutex.

◆ file() [1/2]

const String & file ( ) const
inline

Get the file played by this sound

Returns
The file played by this sound

References String::String().

Referenced by build(), and ClientSound().

◆ file() [2/2]

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

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

Parameters
filenameThe new file played by this sound
stereoTrue if the file contains 2 channel audio

References s_soundsMutex, and stereo().

◆ find()

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

Find a sound object

Parameters
tokenThe token used to match the sound
byNameTrue to match the sound's name, false to match its file
Returns
ClientSound pointer or 0 if not found

References ClientSound(), and String::String().

◆ native()

bool native ( ) const
inline

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)

◆ setChannel()

void setChannel ( const String & chan,
bool ok )

Set/reset channel on sound start/stop

Parameters
chanThe channel id
okOperation: true to start, false to stop

References String::String().

◆ setRepeat()

void setRepeat ( unsigned int count)
inline

Set the repeat counter.

Parameters
countThe number of times to play the sound, 0 to repeat until explicitely stopped

◆ start() [1/2]

bool start ( bool force = true)

Start playing the file

Parameters
forceTrue to start playing the file even if already started
Returns
True on success

◆ start() [2/2]

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

Start playing a given sound

Parameters
nameThe name of the sound to play
forceTrue to start playing the file even if already started
Returns
True on success

References String::String().

◆ started() [1/2]

bool started ( ) const
inline

Check if this sound is started

Returns
True if this sound is started

◆ started() [2/2]

bool started ( const String & name)
static

Check if a sound is started

Parameters
nameThe name of the sound to check
Returns
True if the given sound is started

References String::String().

◆ stereo()

bool stereo ( ) const
inline

Check if this sound's file contains 2 channel audio

Returns
True if the sound file contains 2 channel audio

Referenced by build(), and file().

◆ stop() [1/2]

void stop ( )

Stop playing the file

Referenced by destruct(), and ~ClientSound().

◆ stop() [2/2]

void stop ( const String & name)
static

Stop playing a given sound

Parameters
nameThe name of the sound to stop

References String::String().

Member Data Documentation

◆ s_calltoPrefix

String s_calltoPrefix
static

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

◆ s_sounds

ObjList s_sounds
static

The list of sounds

◆ s_soundsMutex

Mutex s_soundsMutex
static

Mutex used to lock the sounds list operations

Referenced by device(), and file().


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