PDTMFEncoder Class Reference

#include <dtmf.h>

Inheritance diagram for PDTMFEncoder:

PBYTEArray

List of all members.

Public Types

enum  { DefaultToneLen = 100 }

Public Member Functions

 PDTMFEncoder (const char *dtmf=NULL, unsigned len=DefaultToneLen)
void AddTone (char ch, unsigned len=DefaultToneLen)
void AddTone (const PString &str, unsigned len=DefaultToneLen)
void AddTone (double freq1, double freq2=0, unsigned len=DefaultToneLen)
void GenerateRingBackTone ()
void GenerateDialTone ()
void GenerateBusyTone ()
char DtmfChar (PINDEX i)

Static Protected Member Functions

static PMutexGetMutex ()
static void MakeSineTable ()
static double sine (unsigned int ptr)

Static Protected Attributes

static BOOL sineTabInit
static double sinetab [1<< 11]


Detailed Description

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

Member Enumeration Documentation

anonymous enum

Enumerator:
DefaultToneLen 


Constructor & Destructor Documentation

PDTMFEncoder::PDTMFEncoder ( const char *  dtmf = NULL,
unsigned  len = DefaultToneLen 
) [inline]

Create PCM data for the specified DTMF sequence

Parameters:
dtmf  character string to encode
len  length of each DTMF tone in milliseconds


Member Function Documentation

void PDTMFEncoder::AddTone ( char  ch,
unsigned  len = DefaultToneLen 
)

Add the PCM data for the specified tone to the buffer

Parameters:
ch  character to encode
len  length of DTMF tone in milliseconds

void PDTMFEncoder::AddTone ( const PString str,
unsigned  len = DefaultToneLen 
)

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

Parameters:
str  string to encode
len  length of DTMF tone in milliseconds

void PDTMFEncoder::AddTone ( double  freq1,
double  freq2 = 0,
unsigned  len = DefaultToneLen 
)

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

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

void PDTMFEncoder::GenerateDialTone (  )  [inline]

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

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

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

static PMutex& PDTMFEncoder::GetMutex (  )  [static, protected]

static void PDTMFEncoder::MakeSineTable (  )  [static, protected]

static double PDTMFEncoder::sine ( unsigned int  ptr  )  [inline, static, protected]


Member Data Documentation

BOOL PDTMFEncoder::sineTabInit [static, protected]

double PDTMFEncoder::sinetab[1<< 11] [static, protected]


The documentation for this class was generated from the following file:
Generated on Fri Sep 21 14:40:13 2007 for PWLib by  doxygen 1.5.3