📄 wavein.h
字号:
//**********************************************************************
//
// Filename: wavein.h
//
// Description: includes prototypes for WaveIn class.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
// Copyright(c) Cirrus Logic Corporation 2001, All Rights Reserved
//
//**********************************************************************
#ifndef _H_WAVEIN
#define _H_WAVEIN
typedef void WaveInConversionFunc(PVOID, PVOID, PVOID, PULONG, PULONG);
class WaveIn
{
public:
WaveIn();
~WaveIn();
MMRESULT Initialize(CodecInterface *ci);
MMRESULT AddBuffer
(
PWAVEHDR pWaveHDR,
DWORD dwSize
);
MMRESULT Close();
MMRESULT GetDevCaps
(
PWAVEINCAPS pWaveCaps,
DWORD dwSize
);
DWORD GetNumDevs()
{
return 1;
}
MMRESULT GetPosition
(
MMTIME *pmmTime,
DWORD dwSize
);
MMRESULT Open
(
WAVEOPENDESC *pOpenDesc,
DWORD dwFlags
);
MMRESULT Prepare()
{
return MMSYSERR_NOTSUPPORTED;
}
MMRESULT Reset();
MMRESULT Start();
MMRESULT Stop();
MMRESULT UnPrepare()
{
return MMSYSERR_NOTSUPPORTED;
}
private:
void RemoveCompleteBlocks(void);
void EmptyDMABuffer
(
DWORD dwStartPos,
DWORD dwEndPos
);
static void InterruptHandler(void *Handle, BOOL bLastHalf);
PingPongDma m_Dma;
CodecInterface * m_pCodec;
CRITICAL_SECTION m_CriticalSection;;
WAVEFORMATEX m_WaveFormat;
DWORD m_dwInstance;
PWAVEHDR m_pWaveHead;
PWAVEHDR m_pWaveNext;
DRVCALLBACK * m_pfnCallback;
HANDLE m_hCallback;
WaveInConversionFunc * m_pfnWaveCopyFunc;
DWORD m_dwRecordedBytes;
BOOL m_bIsRecording;
DWORD m_dwSourceFactor;
DWORD m_dwDestFactor;
DWORD m_dwDmaSampleSize;
ULONG m_ulDmaBufferSize;
//
// Dma Actual Buffer
//
void * m_pDmaBuffer;
//
// Sample Rate Converter Buffer.
//
void * m_pRateConverterBuffer;
//
// If a Software Sample Rate Converter is used, a buffer
// that is cached that is a copy of the DMA buffer.
//
// If no SRC is used it is also the DMA buffer.
//
void * m_pBuffer;
//
// Pointer to an SRC structure.
//
tSRC m_Src;
BOOL m_bUseSrc;
};
#endif // _H_WAVEIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -