// // tones.h // #ifndef _TONES_H_ #define _TONES_H_ #include #include #include #include #define WAVE_FILE_SIZE 1600 #define NUM_DIGITS 12 ////////////////////////////////////////////////////////////////////////////// // // class CTonePlayer // // Implements tone player for a single phone device. // class CTonePlayer { public: CTonePlayer(); ~CTonePlayer(); HRESULT Initialize(void); HRESULT OpenWaveDevice(long lWaveId); void CloseWaveDevice(void); BOOL IsInUse(void) { return (m_hWaveOut != NULL); } HRESULT StartDialtone(void); HRESULT StopDialtone(void); BOOL DialtonePlaying(void) { return m_fDialtonePlaying; } HRESULT GenerateDTMF(long lDigit); private: // TRUE if Initialize has succeeded. BOOL m_fInitialized; BOOL m_fDialtonePlaying; // Handle to the wave out device. NULL when the device is not open. HWAVEOUT m_hWaveOut; // Header structure that we submit to the wave device. WAVEHDR m_WaveHeader; // buffer containing dialtone waveform BYTE m_abDialtoneWaveform[ WAVE_FILE_SIZE ]; // buffer containing all dtmf waveforms, concatenated in order, 0-9,*,# BYTE m_abDigitWaveforms [ NUM_DIGITS * WAVE_FILE_SIZE ]; }; #endif // _TONES_H_