Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//
// waves.h
//
#ifndef _WAVES_H_
#define _WAVES_H_
#include <mmsystem.h>
#define NUM_TONES 21
#define NUM_WAVES 22
//////////////////////////////////////////////////////////////////////////////
//
// class CWavePlayer
//
// Implements tone player for a single phone device.
//
class CWavePlayer { public: DECLARE_TRACELOG_CLASS(CWavePlayer) CWavePlayer(); ~CWavePlayer();
HRESULT Initialize(void);
HRESULT OpenMixerDevice(long lWaveId); void CloseMixerDevice(void);
HRESULT OpenWaveDeviceForTone(long lWaveId); HRESULT OpenWaveDeviceForRing(long lWaveId); void CloseWaveDeviceForTone(void); void CloseWaveDeviceForRing(void);
BOOL IsInitialized(void) { return m_fInitialized; } BOOL IsInUse(void) { return ((m_hWaveOutTone != NULL) || (m_hWaveOutRing != NULL) || (m_hMixer != NULL)); }
HRESULT StartTone(long lTone); HRESULT StartRing();
HRESULT StopTone(long lTone); HRESULT StopRing(void);
BOOL PlayingTone(long lTone);
HRESULT SetVolume( DWORD dwVolume ); HRESULT GetVolume( DWORD * pdwVolume );
private:
HRESULT ChangeTone();
// TRUE if Initialize has succeeded.
BOOL m_fInitialized;
// Handle to the wave out device. NULL when the device is not open.
HWAVEOUT m_hWaveOutTone; HWAVEOUT m_hWaveOutRing;
HMIXER m_hMixer; MIXERCONTROL m_mxctrl;
// Wave headers
WAVEHDR m_WaveHeaderTone; WAVEHDR m_WaveHeaderRing;
// Buffers for the tones
LPBYTE m_lpWaveform[ NUM_WAVES ];
DWORD m_dwWaveformSize[ NUM_WAVES ];
BOOL m_fPlaying[ NUM_TONES ]; LONG m_lCurrentTone; };
#endif // _WAVES_H_
|