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.
 
 
 
 
 
 

74 lines
2.8 KiB

/*==========================================================================
*
* Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
*
* File: dsplayd.h
* Content: Definition of the CDirectSoundPlaybackDevice class
*
* History:
* Date By Reason
* ==== == ======
* 07/16/99 rodtoll Created
* 07/30/99 rodtoll Updated to allow creation of object using a pre-created
* DirectSound Object.
* 08/04/99 rodtoll Added member to retrieve DirectSound object
* 11/01/99 rodtoll Updated to conform to new interface
* 11/12/99 rodtoll Modified abstraction for new waveOut support.
* Now abstracted types look almost like dsound objects
* 12/01/99 rodtoll Bug #121815 - Static in playback/record
* Added implementations of Set/GetMixerQuality
* (For Win2k/Millenium/Systems w/DX7)
* rodtoll Cleanup of class
* 01/27/2000 rodtoll Updated sound classes to accept playback flags,
* buffer structures and DSBUFFERDESC instead of DSBUFFERDESC1
* 02/17/2000 rodtoll Updated so primary buffer is held instead of released immediately
* 04/04/2001 rodtoll WINBUG #343428 - DPVOICE: Voice wizard's playback is very choppy.
*
***************************************************************************/
#ifndef __DIRECTSOUNDPLAYBACKDEVICE_H
#define __DIRECTSOUNDPLAYBACKDEVICE_H
class CDirectSoundPlaybackDevice;
// CDirectSoundPlaybackDevice
//
// This class is responsible for providing an implementation of the
// CAudioPLaybackDevice class for DirectSound. A single instance
// of this class represents a DirectSound playback device and
// is used to initialize the sound device and act as a class
// factory for CAudioPlaybackBuffers for the DirectSound
// sub-system.
//
class CDirectSoundPlaybackDevice: public CAudioPlaybackDevice
{
public:
CDirectSoundPlaybackDevice( );
virtual ~CDirectSoundPlaybackDevice();
public: // Initialization
HRESULT Initialize( const GUID &guidDevice, HWND hwndOwner, WAVEFORMATEX *primaryFormat, BOOL fPriorityMode );
HRESULT Initialize( LPDIRECTSOUND lpDirectSound, const GUID &guidDevice );
BOOL IsEmulated() { return m_fEmulated; };
HRESULT CreateBuffer( LPDSBUFFERDESC lpdsBufferDesc, DWORD dwFrameSize, CAudioPlaybackBuffer **lpapBuffer );
LPDIRECTSOUND GetPlaybackDevice();
HRESULT GetMixerQuality( DIRECTSOUNDMIXER_SRCQUALITY *psrcQuality );
HRESULT SetMixerQuality( const DIRECTSOUNDMIXER_SRCQUALITY srcQuality );
protected:
HRESULT CheckAndSetEmulated( );
LPDIRECTSOUND m_lpdsDirectSound; // DirectSound object associated w/this object
LPDIRECTSOUNDBUFFER m_lpdsPrimaryBuffer;
HWND m_hwndOwner;
GUID m_guidDevice;
BOOL m_fEmulated;
};
#endif