您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ waveInPrepareHeader函数代码示例

51自学网 2021-06-03 09:52:42
  C++
这篇教程C++ waveInPrepareHeader函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中waveInPrepareHeader函数的典型用法代码示例。如果您正苦于以下问题:C++ waveInPrepareHeader函数的具体用法?C++ waveInPrepareHeader怎么用?C++ waveInPrepareHeader使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了waveInPrepareHeader函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: printf

//--------------------------------------------------------------------------------------//       Class: SoundResources //      Method: (protected) _prepareBuffer // Description: Prepares the internal buffers for the doble buffering. //--------------------------------------------------------------------------------------void SoundResources::_prepareBuffers(void){	//----------------------------------------------------------------------	//  Preparing all memory buffer allocation	//----------------------------------------------------------------------	m_WaveHeader[2].dwBufferLength = 	m_WaveHeader[1].dwBufferLength = 	m_WaveHeader[0].dwBufferLength = dwBufferLength;	m_WaveHeader[0].lpData = (char *)VirtualAlloc(0, 												  m_WaveHeader[0].dwBufferLength, 												  MEM_COMMIT, 												  PAGE_READWRITE);	m_WaveHeader[1].lpData = (char *)VirtualAlloc(0, 												  m_WaveHeader[1].dwBufferLength, 												  MEM_COMMIT, 												  PAGE_READWRITE);	m_WaveHeader[2].lpData = (char *)VirtualAlloc(0, 												  m_WaveHeader[2].dwBufferLength, 												  MEM_COMMIT, 												  PAGE_READWRITE);		//----------------------------------------------------------------------	// Initialize dwFlags and dwLoops to 0. This seems to be necesary according to the	// Microsoft Windows documentation 	//----------------------------------------------------------------------	m_WaveHeader[0].dwFlags = m_WaveHeader[1].dwFlags = m_WaveHeader[2].dwFlags = 0L;	m_WaveHeader[0].dwLoops = m_WaveHeader[1].dwLoops = m_WaveHeader[2].dwFlags = 0L; 	//----------------------------------------------------------------------	// Initialize the headers	//----------------------------------------------------------------------	if ((m_err = waveInPrepareHeader(m_WaveInHandle, &m_WaveHeader[0], sizeof(WAVEHDR)))) 		printf("yarpsounddriver: Error preparing WAVEHDR -- %08X/n", m_err);	if ((m_err = waveInPrepareHeader(m_WaveInHandle, &m_WaveHeader[1], sizeof(WAVEHDR)))) 		printf("yarpsounddriver: Error preparing WAVEHDR -- %08X/n", m_err);	if ((m_err = waveInPrepareHeader(m_WaveInHandle, &m_WaveHeader[2], sizeof(WAVEHDR)))) 		printf("yarpsounddriver: Error preparing WAVEHDR -- %08X/n", m_err);	//----------------------------------------------------------------------	//  It is necessary to queue the two buffers.  	//----------------------------------------------------------------------	if ((m_err = waveInAddBuffer(m_WaveInHandle, &m_WaveHeader[0], sizeof(WAVEHDR))))		printf("yarpsounddriver: Error queueing WAVEHDR 1! -- %08X/n", m_err);	if ((m_err = waveInAddBuffer(m_WaveInHandle, &m_WaveHeader[1], sizeof(WAVEHDR))))		printf("yarpsounddriver: Error queueing WAVEHDR 2! -- %08X/n", m_err);	if ((m_err = waveInAddBuffer(m_WaveInHandle, &m_WaveHeader[2], sizeof(WAVEHDR))))		printf("yarpsounddriver: Error queueing WAVEHDR 2! -- %08X/n", m_err);}
开发者ID:robotology-legacy,项目名称:yarp1,代码行数:55,


示例2: getbuffer

static bool_t getbuffer(WAVEHDR *pwh) {	GDataBuffer *paud;	// Get the next data block to send	gfxSystemLock();	paud = gaudioRecordGetFreeBlockI();	if (!paud && !nQueuedBuffers)		gaudioRecordDoneI();	gfxSystemUnlock();	if (!paud)		return FALSE;	// Prepare the wave header for Windows	pwh->dwUser = (DWORD_PTR)paud;	pwh->lpData = (LPSTR)(paud+1);			// The data is on the end of the structure	pwh->dwBufferLength = paud->size;	pwh->dwFlags = 0;	if (waveInPrepareHeader(ah, pwh, sizeof(WAVEHDR))) {		fprintf(stderr, "GAUDIO: Failed to prepare a record buffer");		exit(-1);	}	// Send it to windows	if (waveInAddBuffer(ah, pwh, sizeof(WAVEHDR))) {		fprintf(stderr, "GAUDIO: Failed to add the record buffer");		exit(-1);	}	nQueuedBuffers++;	return TRUE;}
开发者ID:bunnie,项目名称:chibi-ugfx,代码行数:31,


示例3: ASSERT

BOOL RUIAudio::RecAddBuffer(RUIBuffer* pRUIBuffer){	if (pRUIBuffer == NULL)	{		ASSERT(FALSE);		return FALSE;	}	BYTE*	pBufferRec = pRUIBuffer->GetBuffer();	WAVEHDR*	pWaveHdr = (WAVEHDR*) pBufferRec;	pWaveHdr->lpData         = (LPSTR) (pBufferRec + sizeof(WAVEHDR));	pWaveHdr->dwBufferLength = pRUIBuffer->GetBufferSize() - sizeof(WAVEHDR);	pWaveHdr->dwFlags        = 0;	pWaveHdr->dwUser         = 0;	if (waveInPrepareHeader(m_hWaveIn, pWaveHdr, sizeof(WAVEHDR)) != MMSYSERR_NOERROR)	{		ASSERT(FALSE);		return FALSE;	}	if (waveInAddBuffer(m_hWaveIn, pWaveHdr, sizeof(WAVEHDR)) != MMSYSERR_NOERROR)	{		ASSERT(FALSE);		return FALSE;	}	return TRUE;}
开发者ID:SKplanet,项目名称:RemoteTestService,代码行数:31,


示例4: ZeroMemory

//为录音分配一组内存BOOL CAudioRec::AllocBuffer(){	BOOL bRet=FALSE;	UINT i;		m_pHdr=new WAVEHDR[NUM_BUF];	//为了使录音连续,采用多个缓冲区	for(i=0;i<NUM_BUF;i++)	{		ZeroMemory(&m_pHdr[i],sizeof(WAVEHDR));		m_pHdr[i].lpData=new char[m_nBufSize];		m_pHdr[i].dwBufferLength=m_nBufSize;		m_mmr=waveInPrepareHeader(m_hIn,&m_pHdr[i],sizeof(WAVEHDR));		if(m_mmr)					goto RET;				m_mmr=waveInAddBuffer(m_hIn,&m_pHdr[i],sizeof(WAVEHDR));		if(m_mmr)			goto RET;			}		bRet=TRUE;RET:	return bRet;}
开发者ID:275958081,项目名称:netfox,代码行数:28,


示例5: nt_resyncaudio

static void nt_resyncaudio(void){    UINT mmresult;     int nad, nda, count;    if (nt_resync_cancelled)    	return;    	/* for each open input device, eat all buffers which are marked    	    ready.  The next one will thus be "busy".  */    post("resyncing audio");    for (nad = 0; nad < nt_nwavein; nad++)    {    	int phase = ntsnd_inphase[nad];    	for (count = 0; count < MAXRESYNC; count++)    	{	    WAVEHDR *inwavehdr = ntsnd_invec[nad][phase].lpWaveHdr;	    if (!(inwavehdr->dwFlags & WHDR_DONE)) break;	    if (inwavehdr->dwFlags & WHDR_PREPARED)    		waveInUnprepareHeader(ntsnd_indev[nad],    		    inwavehdr, sizeof(WAVEHDR)); 	    inwavehdr->dwFlags = 0L;	    waveInPrepareHeader(ntsnd_indev[nad], inwavehdr, sizeof(WAVEHDR)); 	    mmresult = waveInAddBuffer(ntsnd_indev[nad], inwavehdr,	    	sizeof(WAVEHDR));	    if (mmresult != MMSYSERR_NOERROR)        	nt_waveinerror("waveInAddBuffer: %s/n", mmresult);	    ntsnd_inphase[nad] = phase = WRAPFWD(phase + 1);    	}    	if (count == MAXRESYNC) post("resync error 1");    }    	/* Each output buffer which is "ready" is filled with zeros and    	queued. */    for (nda = 0; nda < nt_nwaveout; nda++)    {    	int phase = ntsnd_outphase[nda];    	for (count = 0; count < MAXRESYNC; count++)    	{	    WAVEHDR *outwavehdr = ntsnd_outvec[nda][phase].lpWaveHdr;	    if (!(outwavehdr->dwFlags & WHDR_DONE)) break;	    if (outwavehdr->dwFlags & WHDR_PREPARED)    		waveOutUnprepareHeader(ntsnd_outdev[nda],    		    outwavehdr, sizeof(WAVEHDR)); 	    outwavehdr->dwFlags = 0L;	    memset((char *)(ntsnd_outvec[nda][phase].lpData),	    	0, (CHANNELS_PER_DEVICE * SAMPSIZE * nt_realdacblksize));	    waveOutPrepareHeader(ntsnd_outdev[nda], outwavehdr,	    	sizeof(WAVEHDR)); 	    mmresult = waveOutWrite(ntsnd_outdev[nda], outwavehdr,	    	sizeof(WAVEHDR)); 	    if (mmresult != MMSYSERR_NOERROR)        	nt_waveouterror("waveOutAddBuffer: %s/n", mmresult);	    ntsnd_outphase[nda] = phase = WRAPFWD(phase + 1);    	}    	if (count == MAXRESYNC) post("resync error 2");    }#ifdef MIDI_TIMESTAMP    nt_resetmidisync();#endif} 
开发者ID:BurntBrunch,项目名称:rockbox-fft,代码行数:60,


示例6: openMicAndStartRecording

int openMicAndStartRecording(DWORD threadId){	int i;	WAVEFORMATEX m_WaveFormatEx = getDefaultFormat();	if( MMSYSERR_NOERROR != waveInOpen(&g_recordHandler,WAVE_MAPPER,&m_WaveFormatEx,threadId,0,CALLBACK_THREAD)){		printf("ER1!/n");		return -1;	}	for(i=0; i<MAXRECBUFFER; i++){		rechead[i]=CreateWaveHeader();		if(MMSYSERR_NOERROR != waveInPrepareHeader(g_recordHandler,rechead[i], sizeof(WAVEHDR)) ){			printf("ER2!   i=%d/n", i);			return -1;		}		if(MMSYSERR_NOERROR != waveInAddBuffer(g_recordHandler, rechead[i], sizeof(WAVEHDR))){			printf("ER3!/n");			return -1;		}		if(MMSYSERR_NOERROR != waveInStart(g_recordHandler)){			printf("ER4!/n");				return -1;		}	}	printf("Start recording OK!/n");	return 0;}
开发者ID:naeems,项目名称:bkvoice,代码行数:32,


示例7: m_vPrepareCommon

DWORD CWaveBuffer::m_dwPrepare(HWAVEIN hWaveIn){	m_vPrepareCommon(m_iSize);	m_hWaveIn = hWaveIn;		return waveInPrepareHeader(m_hWaveIn, &m_header, sizeof(m_header));}
开发者ID:wonktnodi,项目名称:webrtc_port,代码行数:7,


示例8: GetTickCount

void RUIAudio::On_WIM_DATA(WAVEHDR* pWaveHdr){	if (m_hWaveIn != NULL && pWaveHdr != NULL && m_pRUIBufferListPCM != NULL && pWaveHdr->dwBytesRecorded > 0)	{		DWORD	dwCurrTick = GetTickCount();#ifdef _USE_AAC_CODEC		// [neuromos] !
C++ waveInReset函数代码示例
C++ waveInOpen函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。