windows-nt/Source/XPSP1/NT/enduser/netmeeting/av/nac/dtmf.h

53 lines
958 B
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#ifndef NAC_DTMF_H
#define NAC_DTMF_H
class DTMFQueue
{
private:
BYTE **m_aTones; // array of tone signals
bool m_bInitialized;
WAVEFORMATEX m_WaveFormat;
CRITICAL_SECTION m_cs;
HANDLE m_hEvent;
void ReleaseToneBank();
void AddSignal(BYTE *pTone, int nFrequency, double dAmp, int nLength);
void CreateDTMFTone(BYTE *pTone, int nToneLength, int toneID);
HRESULT GenerateTones(WAVEFORMATEX *pWaveFormat);
struct DTMF_TX_ELEMENT
{
int nToneID;
int nBytesToCopy;
int nOffsetStart;
};
#define DTMF_QUEUE_SIZE 100
DTMF_TX_ELEMENT m_aTxQueue[DTMF_QUEUE_SIZE];
int m_nQueueHead;
int m_nQueueLength;
public:
DTMFQueue();
~DTMFQueue();
HRESULT Initialize(WAVEFORMATEX *pWaveFormat);
HRESULT ReadFromQueue(BYTE *pBuffer, UINT uSize);
HRESULT ClearQueue();
HRESULT AddDigitToQueue(int nDigit);
HANDLE GetEvent() {return m_hEvent;}
};
// default length of the DTMF feedback beep (in ms)
#define DTMF_FEEDBACK_BEEP_MS 64
#endif