PTLib  Version 2.14.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PDTMFEncoder Class Reference

this class can be used to generate PCM data for DTMF tones at a sample rate of 8khz More...

#include <dtmf.h>

Inheritance diagram for PDTMFEncoder:
Collaboration diagram for PDTMFEncoder:

Public Types

enum  { DefaultToneLen = 100 }
 
- Public Types inherited from PTones
enum  {
  MaxVolume = 100, DefaultSampleRate = 8000, MinFrequency = 30, MinModulation = 5,
  SineScale = 1000
}
 

Public Member Functions

 PDTMFEncoder (const char *dtmf=NULL, unsigned milliseconds=DefaultToneLen)
 Create PCM data for the specified DTMF sequence. More...
 
 PDTMFEncoder (char key, unsigned milliseconds=DefaultToneLen)
 Create PCM data for the specified dtmf key. More...
 
void AddTone (const char *str, unsigned milliseconds=DefaultToneLen)
 Add the PCM data for the specified tone sequence to the buffer. More...
 
void AddTone (char ch, unsigned milliseconds=DefaultToneLen)
 Add the PCM data for the specified tone to the buffer. More...
 
void AddTone (double frequency1, double frequency2=0, unsigned milliseconds=DefaultToneLen)
 Add the PCM data for the specified dual-frequency tone to the buffer frequency2 can be zero, which will generate a single frequency tone. More...
 
void GenerateRingBackTone ()
 Generate PCM data for a single cadence of the US standard ring tone of 440/480hz for 2 seconds, followed by 5 seconds of silence. More...
 
void GenerateDialTone ()
 Generate PCM data for 1 second of US standard dial tone of 350/440hz. More...
 
void GenerateBusyTone ()
 Generate PCM data for a single cadence of the US standard busy tone of 480/620hz for 1/2 second, 1/2 second of silence. More...
 
char DtmfChar (PINDEX i)
 Convenience function to get the ASCII character for a DTMF index, where the index varies from 0 to 15. More...
 
- Public Member Functions inherited from PTones
 PTones (unsigned masterVolume=MaxVolume, unsigned sampleRate=DefaultSampleRate)
 Create an empty tone buffer. More...
 
 PTones (const PString &descriptor, unsigned masterVolume=MaxVolume, unsigned sampleRate=DefaultSampleRate)
 Create a filled tone buffer using the specified descriptor. More...
 
bool Generate (const PString &descriptor, unsigned sampleRate=0, unsigned masterVolume=0)
 Generate a tone using the specified descriptor. More...
 
bool Generate (char operation, unsigned frequency1, unsigned frequency2, unsigned milliseconds, unsigned volume=MaxVolume)
 Generate a tone using the specified values. More...
 
bool Write (PChannel &channel)
 Write tones to channel. More...
 
unsigned GetSampleRate () const
 
virtual PBoolean SetSize (PINDEX newSize)
 Set the size of the array in elements. More...
 
- Public Member Functions inherited from PScalarArray< T >
 PScalarArray (PINDEX initialSize=0)
 Construct a new dynamic array of elements of the specified type. More...
 
 PScalarArray (T const *buffer, PINDEX length, PBoolean dynamic=true)
 Construct a new dynamic array of elements of the specified type. More...
 
- Public Member Functions inherited from PBaseArray< T >
 PBaseArray (PINDEX initialSize=0)
 Construct a new dynamic array of elements of the specified type. More...
 
 PBaseArray (T const *buffer, PINDEX length, PBoolean dynamic=true)
 Construct a new dynamic array of elements of the specified type. More...
 
virtual PObjectClone () const
 Clone the object. More...
 
PBoolean SetAt (PINDEX index, T val)
 Set the specific element in the array. More...
 
GetAt (PINDEX index) const
 Get a value from the array. More...
 
void Attach (const T *buffer, PINDEX bufferSize)
 Attach a pointer to a static block to the base array type. More...
 
T * GetPointer (PINDEX minSize=0)
 Get a pointer to the internal array and assure that it is of at least the specified size. More...
 
operator[] (PINDEX index) const
 Get a value from the array. More...
 
T & operator[] (PINDEX index)
 Get a reference to value from the array. More...
 
 operator T const * () const
 Get a pointer to the internal array. More...
 
PBoolean Concatenate (const PBaseArray &array)
 Concatenate one array to the end of this array. More...
 
- Public Member Functions inherited from PAbstractArray
 PAbstractArray (PINDEX elementSizeInBytes, PINDEX initialSize=0)
 Create a new dynamic array of initalSize elements of elementSizeInBytes bytes each. More...
 
 PAbstractArray (PINDEX elementSizeInBytes, const void *buffer, PINDEX bufferSizeInElements, PBoolean dynamicAllocation)
 Create a new dynamic array of bufferSizeInElements elements of elementSizeInBytes bytes each. More...
 
virtual void PrintOn (ostream &strm) const
 Output the contents of the object to the stream. More...
 
virtual void ReadFrom (istream &strm)
 Input the contents of the object from the stream. More...
 
virtual Comparison Compare (const PObject &obj) const
 Get the relative rank of the two arrays. More...
 
void Attach (const void *buffer, PINDEX bufferSize)
 Attach a pointer to a static block to the base array type. More...
 
void * GetPointer (PINDEX minSize=1)
 Get a pointer to the internal array and assure that it is of at least the specified size. More...
 
PBoolean Concatenate (const PAbstractArray &array)
 Concatenate one array to the end of this array. More...
 
- Public Member Functions inherited from PContainer
 PContainer (PINDEX initialSize=0)
 Create a new unique container. More...
 
 PContainer (const PContainer &cont)
 Create a new refernce to container. More...
 
PContaineroperator= (const PContainer &cont)
 Assign one container reference to another. More...
 
virtual ~PContainer ()
 Destroy the container class. More...
 
virtual PINDEX GetSize () const
 Get the current size of the container. More...
 
__inline size_t size () const
 
PBoolean SetMinSize (PINDEX minSize)
 Set the minimum size of container. More...
 
virtual PBoolean IsEmpty () const
 Determine if the container is empty. More...
 
__inline bool empty () const
 
PBoolean IsUnique () const
 Determine if container is unique reference. More...
 
virtual PBoolean MakeUnique ()
 Make this instance to be the one and only reference to the container contents. More...
 
- Public Member Functions inherited from PObject
unsigned GetTraceContextIdentifier () const
 Get PTRACE context identifier. More...
 
void SetTraceContextIdentifier (unsigned id)
 
void GetTraceContextIdentifier (PObject &obj)
 
void GetTraceContextIdentifier (PObject *obj)
 
void SetTraceContextIdentifier (const PObject &obj)
 
void SetTraceContextIdentifier (const PObject *obj)
 
virtual ~PObject ()
 
template<class CLS >
CLS * CloneAs () const
 As for Clone() but converts to specified type. More...
 
virtual PINDEX HashFunction () const
 This function yields a hash value required by the PDictionary class. More...
 
virtual Comparison CompareObjectMemoryDirect (const PObject &obj) const
 Determine the byte wise comparison of two objects. More...
 
bool operator== (const PObject &obj) const
 Compare the two objects. More...
 
bool operator!= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator< (const PObject &obj) const
 Compare the two objects. More...
 
bool operator> (const PObject &obj) const
 Compare the two objects. More...
 
bool operator<= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator>= (const PObject &obj) const
 Compare the two objects. More...
 
virtual const char * GetClass (unsigned ancestor=0) const
 Get the current dynamic type of the object instance. More...
 
PBoolean IsClass (const char *cls) const
 
virtual PBoolean InternalIsDescendant (const char *clsName) const
 Determine if the dynamic type of the current instance is a descendent of the specified class. More...
 
__inline const PObjectPTraceObjectInstance () const
 

Additional Inherited Members

- Static Public Member Functions inherited from PObject
static Comparison InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
 Internal function caled from CompareObjectMemoryDirect() More...
 
static const char * Class ()
 Get the name of the class as a C string. More...
 
static __inline const PObjectPTraceObjectInstance (const char *)
 
static __inline const PObjectPTraceObjectInstance (const PObject *obj)
 
- Protected Member Functions inherited from PTones
void Reset ()
 
bool Juxtapose (unsigned frequency1, unsigned frequency2, unsigned milliseconds, unsigned volume)
 
bool Modulate (unsigned frequency, unsigned modulate, unsigned milliseconds, unsigned volume)
 
bool PureTone (unsigned frequency, unsigned milliseconds, unsigned volume)
 
bool Silence (unsigned milliseconds)
 
unsigned CalcSamples (unsigned milliseconds, unsigned frequency1, unsigned frequency2=0)
 
void AddSample (int sample, unsigned volume)
 
- Protected Attributes inherited from PTones
unsigned m_sampleRate
 
unsigned m_maxFrequency
 
unsigned m_masterVolume
 
char m_lastOperation
 
unsigned m_lastFrequency1
 
unsigned m_lastFrequency2
 
int m_angle1
 
int m_angle2
 
PINDEX m_addPosition
 
- Friends inherited from PObject

Detailed Description

this class can be used to generate PCM data for DTMF tones at a sample rate of 8khz

Member Enumeration Documentation

anonymous enum
Enumerator
DefaultToneLen 

Constructor & Destructor Documentation

PDTMFEncoder::PDTMFEncoder ( const char *  dtmf = NULL,
unsigned  milliseconds = DefaultToneLen 
)

Create PCM data for the specified DTMF sequence.

Parameters
dtmfcharacter string to encode
millisecondslength of each DTMF tone in milliseconds
PDTMFEncoder::PDTMFEncoder ( char  key,
unsigned  milliseconds = DefaultToneLen 
)

Create PCM data for the specified dtmf key.

Parameters
keycharacter string to encode
millisecondslength of each DTMF tone in milliseconds

Member Function Documentation

void PDTMFEncoder::AddTone ( const char *  str,
unsigned  milliseconds = DefaultToneLen 
)

Add the PCM data for the specified tone sequence to the buffer.

Parameters
strstring to encode
millisecondslength of DTMF tone in milliseconds
void PDTMFEncoder::AddTone ( char  ch,
unsigned  milliseconds = DefaultToneLen 
)

Add the PCM data for the specified tone to the buffer.

Parameters
chcharacter to encode
millisecondslength of DTMF tone in milliseconds
void PDTMFEncoder::AddTone ( double  frequency1,
double  frequency2 = 0,
unsigned  milliseconds = DefaultToneLen 
)

Add the PCM data for the specified dual-frequency tone to the buffer frequency2 can be zero, which will generate a single frequency tone.

char PDTMFEncoder::DtmfChar ( PINDEX  i)

Convenience function to get the ASCII character for a DTMF index, where the index varies from 0 to 15.

Returns
ASCII value
Parameters
iindex of tone
void PDTMFEncoder::GenerateBusyTone ( )
inline

Generate PCM data for a single cadence of the US standard busy tone of 480/620hz for 1/2 second, 1/2 second of silence.

References PTones::Generate().

void PDTMFEncoder::GenerateDialTone ( )
inline

Generate PCM data for 1 second of US standard dial tone of 350/440hz.

References PTones::Generate().

void PDTMFEncoder::GenerateRingBackTone ( )
inline

Generate PCM data for a single cadence of the US standard ring tone of 440/480hz for 2 seconds, followed by 5 seconds of silence.

References PTones::Generate().


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