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.
|
|
/*==========================================================================
* * Copyright (C) 1999 Microsoft Corporation. All Rights Reserved. * * File: agcva1.h * Content: Concrete class that implements CAutoGainControl * * History: * Date By Reason * ==== == ====== * 12/01/99 pnewson Created it * 01/31/2000 pnewson re-add support for absence of DVCLIENTCONFIG_AUTOSENSITIVITY flag * 03/03/2000 rodtoll Updated to handle alternative gamevoice build. * 04/25/2000 pnewson Fix to improve responsiveness of AGC when volume level too low * ***************************************************************************/
#ifndef _AGCVA1_H_
#define _AGCVA1_H_
#define CAGCVA1_HISTOGRAM_BUCKETS 0x10
#define CAGCVA1_AGCTICKSIZE 250
class CAGCVA1 : public CAGCVA { protected: DWORD m_dwFlags; DWORD m_dwSensitivity; GUID m_guidCaptureDevice; LONG m_lCurVolume; LONG m_lCurStepSize; int m_iSampleRate; int m_iBitsPerSample;
int m_iShiftConstantFast; int m_iShiftConstantSlow; int m_iEnvelopeSampleRate; int m_iCurSampleNum; int m_iCurEnvelopeValueFast; int m_iCurEnvelopeValueSlow; int m_iPrevEnvelopeSample; int m_iHangoverSamples; int m_iCurHangoverSamples;
BYTE m_bPeak; /*
BYTE m_bPeak127; BYTE m_bPeakLog; BYTE m_bZeroCrossings127; BYTE m_bZeroCrossingsLog; */
BOOL m_fVoiceDetectedNow; BOOL m_fVoiceHangoverActive; BOOL m_fVoiceDetectedThisFrame;
BOOL m_fDeadZoneDetected; int m_iFeedbackSamples; /*
BOOL m_fClipping; int m_iClippingCount; */ int m_iClippingSampleCount; int m_iNonClippingSampleCount;
int m_iDeadZoneSamples; int m_iDeadZoneSampleThreshold;
BOOL m_fAGCLastFrameAdjusted; //DWORD m_dwAGCBelowThresholdTime;
//DWORD m_dwFrameTime;
float* m_rgfAGCHistory; DWORD m_dwHistorySamples;
WCHAR m_wszRegPath[_MAX_PATH];
/*
DWORD m_rgdwPeakHistogram[CAGCVA1_HISTOGRAM_BUCKETS]; DWORD m_rgdwZeroCrossingsHistogram[CAGCVA1_HISTOGRAM_BUCKETS]; */ public: CAGCVA1() : m_guidCaptureDevice(GUID_NULL) , m_lCurVolume(0) , m_lCurStepSize(0) , m_bPeak(0) , m_fVoiceDetectedThisFrame(FALSE) , m_fVoiceDetectedNow(FALSE) //, m_fVoiceDetectedValid(FALSE)
//, m_fAGCLastFrameAdjusted(FALSE)
//, m_dwAGCBelowThresholdTime(0)
//, m_dwFrameTime(0)
{};
virtual ~CAGCVA1() {}; virtual HRESULT Init( const WCHAR *wszBasePath, DWORD dwFlags, GUID guidCaptureDevice, int iSampleRate, int iBitsPerSample, LONG* plInitVolume, DWORD dwSensitivity); virtual HRESULT Deinit(); virtual HRESULT SetSensitivity(DWORD dwFlags, DWORD dwSensitivity); virtual HRESULT GetSensitivity(DWORD* pdwFlags, DWORD* pdwSensitivity); virtual HRESULT AnalyzeData(BYTE* pbAudioData, DWORD dwAudioDataSize/*, DWORD dwFrameTime*/); virtual HRESULT AGCResults(LONG lCurVolume, LONG* plNewVolume, BOOL fTransmitFrame); virtual HRESULT VAResults(BOOL* pfVoiceDetected); virtual HRESULT PeakResults(BYTE* pbPeakValue); };
#endif
|