76 lines
2.9 KiB
C
76 lines
2.9 KiB
C
|
/*==========================================================================
|
||
|
*
|
||
|
* Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
|
||
|
*
|
||
|
* File: dscrecd.h
|
||
|
* Content: Definition of the CDirectSoundCaptureRecordDevice class
|
||
|
*
|
||
|
* History:
|
||
|
* Date By Reason
|
||
|
* ==== == ======
|
||
|
* 07/16/99 rodtoll Created
|
||
|
* 07/30/99 rodtoll Updated to allow creation of object using a pre-created
|
||
|
* DirectSoundCapture Object.
|
||
|
* 08/04/99 rodtoll Added member to retrieve DSC object
|
||
|
* 11/12/99 rodtoll Modified abstraction for new waveIN support.
|
||
|
* Now abstracted types look almost like dsoundcap objects
|
||
|
* 11/22/99 rodtoll Added code to map from GUID to waveIN device
|
||
|
* ID for non-millenium systems.
|
||
|
* 11/23/99 rodtoll Updated to use waveIn device ID or DSound 7.1 when they are avail
|
||
|
* 12/01/99 rodtoll Bug #115783 - Will always adjust volume of default device
|
||
|
* Now uses new CMixerLine class for adjusting volumes/selecting mic
|
||
|
* rodtoll New algorithm to map from GUIDs to device IDs if DSound 7.1 is not
|
||
|
* available. Will map device correctly on DX7, will guess for other
|
||
|
* DX versions < 7. However, default device is assumed to be waveIN ID #0.
|
||
|
* 12/01/99 rodtoll Bug #115783 - Will always adjust volume of default device
|
||
|
* Now uses new CMixerLine class for adjusting volumes/selecting mic
|
||
|
* 12/08/99 rodtoll Bug #121054 - DirectX 7.1 support.
|
||
|
* - Added hwndOwner param for capture focus support
|
||
|
*
|
||
|
***************************************************************************/
|
||
|
|
||
|
// DirectSoundCaptureRecordDevice.cpp
|
||
|
//
|
||
|
// This module contains the declaration of the DirectSoundCaptureRecordDevice
|
||
|
// class. See the class definition below for a description
|
||
|
//
|
||
|
// Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
|
||
|
//
|
||
|
#ifndef __DIRECTSOUNDCAPTURERECORDDEVICE_H
|
||
|
#define __DIRECTSOUNDCAPTURERECORDDEVICE_H
|
||
|
|
||
|
// CDirectSoundCaptureRecordDevice
|
||
|
//
|
||
|
// This class provides an implementation of the CAudioRecordDevice class which
|
||
|
// uses the DirectSoundCapture API to talk to the recording hardware.
|
||
|
//
|
||
|
class CDirectSoundCaptureRecordDevice: public CAudioRecordDevice
|
||
|
{
|
||
|
public:
|
||
|
CDirectSoundCaptureRecordDevice();
|
||
|
|
||
|
virtual ~CDirectSoundCaptureRecordDevice();
|
||
|
|
||
|
public: // Initialization
|
||
|
|
||
|
HRESULT Initialize( const GUID &refguidDevice );
|
||
|
HRESULT Initialize( LPDIRECTSOUNDCAPTURE lpdsc, const GUID &guidDevice );
|
||
|
|
||
|
HRESULT CreateBuffer( LPDSCBUFFERDESC lpdscBufferDesc, HWND hwndOwner, DWORD dwFrameSize, CAudioRecordBuffer **lpapBuffer );
|
||
|
|
||
|
LPDIRECTSOUNDCAPTURE GetCaptureDevice();
|
||
|
|
||
|
HRESULT GetMixerQuality( DIRECTSOUNDMIXER_SRCQUALITY *psrcQuality );
|
||
|
HRESULT SetMixerQuality( const DIRECTSOUNDMIXER_SRCQUALITY srcQuality );
|
||
|
|
||
|
protected:
|
||
|
|
||
|
HRESULT FindDeviceID();
|
||
|
|
||
|
LPDIRECTSOUNDCAPTURE m_lpdscDirectSound; // DirectSoundCapture interface
|
||
|
GUID m_guidDevice;
|
||
|
UINT m_uiWaveDeviceID;
|
||
|
};
|
||
|
|
||
|
#endif
|