这篇教程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: getbufferstatic 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: ASSERTBOOL 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_resyncaudiostatic 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: openMicAndStartRecordingint 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_vPrepareCommonDWORD 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: GetTickCountvoid 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函数代码示例
|