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:

## Public Types

enum | { DefaultToneLen = 100 }
Public Types inherited from PTones
enum | { MaxVolume = 100, DefaultSampleRate = 8000, MinFrequency = 30, MinModulation = 5, SineScale = 1000 }
Public Types inherited from PObject
enum | Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
| Result of the comparison operation performed by the `Compare()` function. More...

## 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)
| 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...
Public Member Functions inherited from PShortArray
| PShortArray (PINDEX initialSize=0)
| Construct a new dynamic array of shorts. More...
| PShortArray (short const *buffer, PINDEX length, PBoolean dynamic=true)
| Construct a new dynamic array of shorts. 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 PObject * | Clone () const
| Clone the object. More...
PBoolean | SetAt (PINDEX index, T val)
| Set the specific element in the array. More...
T | 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...
T | 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...
virtual PBoolean | SetSize (PINDEX newSize)
| Set the size of the array in elements. 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...
PContainer & | operator= (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...
PBoolean | SetMinSize (PINDEX minSize)
| Set the minimum size of container. More...
virtual PBoolean | IsEmpty () const
| Determine if the container is empty. More...
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
virtual | ~PObject ()
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...

## 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...
Protected Member Functions inherited from PTones
void | Construct ()
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 Member Functions inherited from PBaseArray< T >
virtual void | PrintElementOn (ostream &stream, PINDEX index) const
| PBaseArray (PContainerReference &reference)
Protected Member Functions inherited from PAbstractArray
PBoolean | InternalSetSize (PINDEX newSize, PBoolean force)
virtual void | ReadElementFrom (istream &stream, PINDEX index)
| PAbstractArray (PContainerReference &reference, PINDEX elementSizeInBytes)
Protected Member Functions inherited from PContainer
| PContainer (int dummy, const PContainer *cont)
| Constructor used in support of the Clone() function. More...
| PContainer (PContainerReference &reference)
| Construct using static PContainerReference. More...
virtual void | DestroyContents ()=0
| Destroy the container contents. More...
virtual void | AssignContents (const PContainer &c)
| Copy the container contents. More...
void | CopyContents (const PContainer &c)
| Copy the container contents. More...
void | CloneContents (const PContainer *src)
| Create a duplicate of the container contents. More...
void | Destruct ()
| Internal function called from container destructors. More...
virtual void | DestroyReference ()
| Destroy the PContainerReference instance. More...
Protected Member Functions inherited from PObject
| PObject ()
| Constructor for PObject, made protected so cannot ever create one on its own. More...
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
Protected Attributes inherited from PAbstractArray
PINDEX | elementSize
| Size of an element in bytes. More...
char * | theArray
| Pointer to the allocated block of memory. More...
PBoolean | allocatedDynamically
| Flag indicating the array was allocated on the heap. More...
Protected Attributes inherited from PContainer
PContainerReference * | reference

## 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

  dtmf | character string to encode
  milliseconds | length of each DTMF tone in milliseconds

PDTMFEncoder::PDTMFEncoder | ( | char | key,
|  | unsigned | milliseconds = `DefaultToneLen`
| ) |  |

Create PCM data for the specified dtmf key.

Parameters

  key | character string to encode
  milliseconds | length 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

  str | string to encode
  milliseconds | length 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

  ch | character to encode
  milliseconds | length 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

  i | index 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:

- dtmf.h