75 lines
2.7 KiB
C
75 lines
2.7 KiB
C
|
/*==========================================================================
|
||
|
*
|
||
|
* 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
|