这篇教程C++ waveInClose函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中waveInClose函数的典型用法代码示例。如果您正苦于以下问题:C++ waveInClose函数的具体用法?C++ waveInClose怎么用?C++ waveInClose使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了waveInClose函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: waveInCloseLRESULT CFirstPageDlg::OnMM_WIM_DATA(UINT wParam, LONG lParam) { // TODO: Add your message handler code here and/or call default // Reallocate save buffer memory ////////////////////////////////////////////////////////////////////////// pNewBuffer = (PBYTE)realloc (pSaveBuffer, dwDataLength +((PWAVEHDR) lParam)->dwBytesRecorded) ; if (pNewBuffer == NULL) { waveInClose (hWaveIn) ; MessageBeep (MB_ICONEXCLAMATION) ; AfxMessageBox(_T("OnMM_WIM_DATA:memory error")); return 0; } pSaveBuffer = pNewBuffer ; CopyMemory (pSaveBuffer + dwDataLength, ((PWAVEHDR) lParam)->lpData,((PWAVEHDR) lParam)->dwBytesRecorded) ; dwDataLength += ((PWAVEHDR) lParam)->dwBytesRecorded ; if (!bRecording) { waveInClose (hWaveIn) ; return 0 ; } waveInAddBuffer (hWaveIn, (PWAVEHDR) lParam, sizeof (WAVEHDR)) ; TRACE("done input data/n"); return 0; }
开发者ID:jltong,项目名称:SignerSystem,代码行数:35,
示例2: init_recording/** * Prepare recording. Initialize and acquire recording resources. */static javacall_result init_recording(recorder_handle* hRecord){ WAVEFORMATEX format; /* Setup wave in format */ format.wFormatTag = WAVE_FORMAT_PCM; format.cbSize = 0; format.wBitsPerSample = 16; format.nSamplesPerSec = 22050; format.nChannels = 1; format.nAvgBytesPerSec = format.nSamplesPerSec * (format.wBitsPerSample/8); format.nBlockAlign = format.nChannels; /* Open WAV in H/W */ if (NULL == hRecord->hWAVEIN) { MMRESULT mmReturn = 0; mmReturn = waveInOpen(&hRecord->hWAVEIN, WAVE_MAPPER, &format, (DWORD)waveInProc, (DWORD)hRecord, CALLBACK_FUNCTION); if (MMSYSERR_NOERROR != mmReturn) { hRecord->hWAVEIN = NULL; return JAVACALL_FAIL; } } /* Create WAV file for (temp) storage */ if (NULL == hRecord->hFile) { HMMIO hFile; /* Create temp file? If there is no pre-setted name. */ if (0x0 == hRecord->fileName[0]) { GetTempPath(MAX_PATH, hRecord->fileName); GetTempFileName(hRecord->fileName, "record", 0, hRecord->fileName); } if (JAVACALL_SUCCEEDED(create_wav_file(hRecord->fileName, &format, &hFile))) { hRecord->hFile = hFile; } else { waveInClose(hRecord->hWAVEIN); hRecord->hWAVEIN = NULL; return JAVACALL_FAIL; } } /* Add input buffer */ if (!JAVACALL_SUCCEEDED(add_input_buffer(hRecord, &format))) { waveInClose(hRecord->hWAVEIN); close_wav_file(hRecord); hRecord->hWAVEIN = NULL; return JAVACALL_FAIL; } return JAVACALL_OK;}
开发者ID:sfsy1989,项目名称:j2me,代码行数:58,
示例3: ad_open_sps_bufsizead_rec_t *ad_open_sps_bufsize(int32 sps, int32 bufsize_msec){ ad_rec_t *r; int32 i, j; HWAVEIN h; if ((h = wavein_open(sps, sizeof(int16))) == NULL) return NULL; if ((r = (ad_rec_t *) malloc(sizeof(ad_rec_t))) == NULL) { fprintf(stderr, "malloc(%d) failed/n", sizeof(ad_rec_t)); waveInClose(h); return NULL; } r->n_buf = ((sps * bufsize_msec) / 1000) / WI_BUFSIZE; if (r->n_buf < DEFAULT_N_WI_BUF) r->n_buf = DEFAULT_N_WI_BUF; printf("Allocating %d buffers of %d samples each/n", r->n_buf, WI_BUFSIZE); if ((r->wi_buf = (ad_wbuf_t *) calloc(r->n_buf, sizeof(ad_wbuf_t))) == NULL) { fprintf(stderr, "calloc(%d,%d) failed/n", r->n_buf, sizeof(ad_wbuf_t)); free(r); waveInClose(h); return NULL; } for (i = 0; i < r->n_buf; i++) { if (wavein_alloc_buf(&(r->wi_buf[i]), WI_BUFSIZE) < 0) { for (j = 0; j < i; j++) wavein_free_buf(&(r->wi_buf[j])); free(r->wi_buf); free(r); waveInClose(h); return NULL; } } r->h_wavein = h; r->opened = 1; r->recording = 0; r->curbuf = r->n_buf - 1; /* current buffer with data for application */ r->curlen = 0; /* #samples in curbuf remaining to be consumed */ r->lastbuf = r->curbuf; r->sps = sps; r->bps = sizeof(int16); /* HACK!! Hardwired value for bytes/sec */ return r;}
开发者ID:AtDinesh,项目名称:Jaf_pose_est,代码行数:54,
示例4: tdav_producer_waveapi_dtor/* destructor */static tsk_object_t* tdav_producer_waveapi_dtor(tsk_object_t * self){ tdav_producer_waveapi_t *producer = self; if(producer){ tsk_size_t i; /* stop */ if(producer->started){ tdav_producer_waveapi_stop(self); } /* deinit base */ tdav_producer_audio_deinit(TDAV_PRODUCER_AUDIO(producer)); /* deinit self */ for(i = 0; i< sizeof(producer->hWaveHeaders)/sizeof(LPWAVEHDR); i++){ free_wavehdr(producer, i); } if(producer->hWaveIn){ waveInClose(producer->hWaveIn); } if(producer->events[0]){ CloseHandle(producer->events[0]); } if(producer->events[1]){ CloseHandle(producer->events[1]); } DeleteCriticalSection(&producer->cs); } return self;}
开发者ID:Zhe-Zhu,项目名称:Qianli,代码行数:32,
示例5: RecDataint RecData(int i){ WORD wResult; SendInBuffers--; if (!StopRecord) { InFillBuffer(i); wResult = waveInAddBuffer(hWaveIn,WaveInBuf[i].lpWaveHdr,sizeof(WAVEHDR)); if (wResult != 0) { WaveInFreeAll(); return 0; } SendInBuffers++; } else { if (!SendInBuffers) { WaveInFreeAll(); StopRecord=FALSE; waveInClose(hWaveIn); } } return 1;}
开发者ID:scareface972,项目名称:nabaztag-source-code,代码行数:27,
示例6: CloseDevice void CloseDevice() { MMRESULT mRes=0; if(m_hWaveIn) { UnPrepareBuffers(); mRes=waveInClose(m_hWaveIn); } if(m_hOPFile) { mRes=mmioAscend(m_hOPFile, &m_stckOut, 0); if(mRes!=MMSYSERR_NOERROR) { FAIL_M("bad"); } mRes=mmioAscend(m_hOPFile, &m_stckOutRIFF, 0); if(mRes!=MMSYSERR_NOERROR) { FAIL_M("bad"); } mmioClose(m_hOPFile,0); m_hOPFile=NULL; } m_hWaveIn=NULL; }
开发者ID:goofwear,项目名称:stepmania,代码行数:26,
示例7: wavein_closestatic int32 wavein_close (ad_rec_t *r){ int32 i, st; /* Unprepare all buffers; multiple unprepares of the same buffer are benign */ for (i = 0; i < r->n_buf; i++) { st = waveInUnprepareHeader(r->h_wavein, r->wi_buf[i].p_whdr, sizeof(WAVEHDR)); if (st != 0) { wavein_error("waveInUnprepareHeader", st); return -1; } } /* Free buffers */ for (i = 0; i < r->n_buf; i++) wavein_free_buf (&(r->wi_buf[i])); free (r->wi_buf); if ((st = waveInClose (r->h_wavein)) != 0) { wavein_error("waveInClose", st); return -1; } free (r); return 0;}
开发者ID:10v,项目名称:cmusphinx,代码行数:27,
示例8: win32ai_close/** * win32ai_close() * Terminate recording. * This function discards all data that has been sampled but not read. * Return 0 if happy, -1 if error. */int win32ai_close(void) { MMRESULT res; int i; // stop device res = waveInReset(wavein); if (checkWaveInResult(wavein, res, "waveInReset")) return -1; // wait for buffers to finish and unprepare them all for (i = 0; i < WaveBuf_N; ++i) { while ((whin[i]->dwFlags & WHDR_DONE) == 0) { // buffer not ready, wait, try again WaitForSingleObject(whinEvent, INFINITE); } // unprepare the buffer res = waveInUnprepareHeader(wavein, whin[i], sizeof(WAVEHDR)); if (checkWaveInResult(wavein, res, "waveInUnprepareHeader")) return -1; // free memory free(whin[i]->lpData); free(whin[i]); } // close device res = waveInClose(wavein); if (checkWaveInResult(wavein, res, "waveInClose")) return -1; return 0;}
开发者ID:BackupTheBerlios,项目名称:nautilus,代码行数:37,
示例9: ALCwinmmCapture_Destructstatic void ALCwinmmCapture_Destruct(ALCwinmmCapture *self){ void *buffer = NULL; int i; /* Tell the processing thread to quit and wait for it to do so. */ if(!ATOMIC_EXCHANGE(&self->killNow, AL_TRUE, almemory_order_acq_rel)) { PostThreadMessage(self->thread, WM_QUIT, 0, 0); althrd_join(self->thread, &i); /* Make sure capture is stopped and all pending buffers are flushed. */ waveInReset(self->InHdl); // Release the wave buffers for(i = 0;i < 4;i++) { waveInUnprepareHeader(self->InHdl, &self->WaveBuffer[i], sizeof(WAVEHDR)); if(i == 0) buffer = self->WaveBuffer[i].lpData; self->WaveBuffer[i].lpData = NULL; } free(buffer); } ll_ringbuffer_free(self->Ring); self->Ring = NULL; // Close the Wave device if(self->InHdl) waveInClose(self->InHdl); self->InHdl = 0; ALCbackend_Destruct(STATIC_CAST(ALCbackend, self));}
开发者ID:F4r3n,项目名称:FarenMediaLibrary,代码行数:35,
示例10: Stopvoid RUIAudio::RecordClose(){ Stop(); HWAVEIN hTemp = m_hWaveIn; m_hWaveIn = NULL; if (hTemp == NULL) return; RUIBuffer* pRUIBuffer = m_RecBufferList.GetFirst(); while (pRUIBuffer != NULL) { RecRemoveBuffer(pRUIBuffer); pRUIBuffer = m_RecBufferList.GetNext(pRUIBuffer); } if( hTemp == NULL ) return; if (waveInReset(hTemp) != MMSYSERR_NOERROR) ASSERT(FALSE); if (waveInClose(hTemp) != MMSYSERR_NOERROR) ASSERT(FALSE);}
开发者ID:SKplanet,项目名称:RemoteTestService,代码行数:25,
示例11: m_bAbortbool CSoundChannel::m_bCloseAudio(){ if(m_bClose) return m_bClose; m_bAbort(); if(m_hWaveOut != NULL) { while(waveOutClose(m_hWaveOut) == WAVERR_STILLPLAYING) //关闭WAVEOUT设备 waveOutReset(m_hWaveOut); m_hWaveOut = NULL; } if(m_hWaveIn != NULL) { while(waveInClose(m_hWaveIn) == WAVERR_STILLPLAYING) //关闭WAVEIN设备 waveInReset(m_hWaveIn); m_hWaveIn = NULL; } m_bAbort(); m_uOldHandle = -1; m_bClose = true; return true;}
开发者ID:wonktnodi,项目名称:webrtc_port,代码行数:27,
示例12: mmio_close_audiovoid mmio_close_audio( void){ int errcode; int nda, nad; if (sys_verbose) post("closing audio..."); for (nda=0; nda < nt_nwaveout; nda++) /*if (nt_nwaveout) wini */ { errcode = waveOutReset(ntsnd_outdev[nda]); if (errcode != MMSYSERR_NOERROR) printf("error resetting output %d: %d/n", nda, errcode); errcode = waveOutClose(ntsnd_outdev[nda]); if (errcode != MMSYSERR_NOERROR) printf("error closing output %d: %d/n",nda , errcode); } nt_nwaveout = 0; for(nad=0; nad < nt_nwavein;nad++) /* if (nt_nwavein) wini */ { errcode = waveInReset(ntsnd_indev[nad]); if (errcode != MMSYSERR_NOERROR) printf("error resetting input: %d/n", errcode); errcode = waveInClose(ntsnd_indev[nad]); if (errcode != MMSYSERR_NOERROR) printf("error closing input: %d/n", errcode); } nt_nwavein = 0;}
开发者ID:BurntBrunch,项目名称:rockbox-fft,代码行数:29,
示例13: WinMMCloseCapturestatic void WinMMCloseCapture(ALCdevice *Device){ WinMMData *data = (WinMMData*)Device->ExtraData; void *buffer = NULL; int i; /* Tell the processing thread to quit and wait for it to do so. */ data->killNow = AL_TRUE; PostThreadMessage(data->thread, WM_QUIT, 0, 0); althrd_join(data->thread, &i); /* Make sure capture is stopped and all pending buffers are flushed. */ waveInReset(data->WaveHandle.In); // Release the wave buffers for(i = 0; i < 4; i++) { waveInUnprepareHeader(data->WaveHandle.In, &data->WaveBuffer[i], sizeof(WAVEHDR)); if(i == 0) buffer = data->WaveBuffer[i].lpData; data->WaveBuffer[i].lpData = NULL; } free(buffer); DestroyRingBuffer(data->Ring); data->Ring = NULL; // Close the Wave device waveInClose(data->WaveHandle.In); data->WaveHandle.In = 0; free(data); Device->ExtraData = NULL;}
开发者ID:uberpixel,项目名称:openal-soft,代码行数:34,
示例14: gaudio_record_lld_initbool_t gaudio_record_lld_init(uint16_t channel, uint32_t frequency, ArrayDataFormat format) { WAVEFORMATEX wfx; if (format != ARRAY_DATA_8BITUNSIGNED && format != ARRAY_DATA_16BITSIGNED) return FALSE; if (!waveThread) { if (!(waveThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)waveProc, 0, 0, &threadID))) { fprintf(stderr, "GAUDIO: Can't create WAVE recording thread/n"); exit(-1); } CloseHandle(waveThread); } wfx.wFormatTag = WAVE_FORMAT_PCM; wfx.nChannels = channel == GAUDIO_RECORD_STEREO ? 2 : 1; wfx.nSamplesPerSec = frequency; wfx.nBlockAlign = wfx.nChannels * (format == ARRAY_DATA_8BITUNSIGNED ? 1 : 2); wfx.nAvgBytesPerSec = wfx.nSamplesPerSec * wfx.nBlockAlign; wfx.wBitsPerSample = (format == ARRAY_DATA_8BITUNSIGNED ? 8 : 16); wfx.cbSize = 0; if (ah) { waveInClose(ah); ah = 0; } if (waveInOpen(&ah, WAVE_MAPPER, &wfx, (DWORD_PTR)threadID, 0, CALLBACK_THREAD)) { fprintf(stderr, "GAUDIN: Can't open WAVE recording device/n"); exit(-1); } return TRUE;}
开发者ID:bunnie,项目名称:chibi-ugfx,代码行数:33,
示例15: BGBMID_SoundDev_RecDeInitBMID_API int BGBMID_SoundDev_RecDeInit(){ int i; waveInStop(hWaveIn); waveInReset(hWaveIn); if(lpInWaveHdr) { for(i=0; i<WAV_BUFFERS; i++) waveInUnprepareHeader(hWaveIn, lpInWaveHdr+i, sizeof(WAVEHDR)); } waveInClose(hWaveIn); if(hInWaveHdr) { GlobalUnlock(hInWaveHdr); GlobalFree(hInWaveHdr); } if(hInData) { GlobalUnlock(hInData); GlobalFree(hInData); } return(0);}
开发者ID:cr88192,项目名称:bgbtech_engine,代码行数:30,
示例16: waveOutCloseaudioStreamer_waveOut::~audioStreamer_waveOut(){ int x; if (m_hwo) waveOutReset(m_hwo); if (m_hwi) waveInReset(m_hwi); for (x = 0; x < m_bufs.GetSize(); x ++) { WAVEHDR *p = (WAVEHDR *)m_bufs.Get(x)->Get(); if (m_hwi && p) if (p->dwFlags & WHDR_PREPARED) waveInUnprepareHeader(m_hwi,p,sizeof(WAVEHDR)); if (m_hwo && p) { if (p->dwFlags & WHDR_PREPARED) waveOutUnprepareHeader(m_hwo,p,sizeof(WAVEHDR)); } delete m_bufs.Get(x); } m_bufs.Empty(); if (m_hwo) { waveOutClose(m_hwo); m_hwo=0; } if (m_hwi) { waveInClose(m_hwi); m_hwi=0; }}
开发者ID:libninjam,项目名称:libninjam-win,代码行数:31,
示例17: waveInStopCAudio::~CAudio(){ if (m_bIsWaveInUsed) { waveInStop(m_hWaveIn); waveInReset(m_hWaveIn); for (int i = 0; i < 2; 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 < 2; i++) waveOutUnprepareHeader(m_hWaveOut, m_lpInAudioHdr[i], sizeof(WAVEHDR)); waveOutClose(m_hWaveOut); } for (int i = 0; i < 2; 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);}
开发者ID:nickwu1220,项目名称:PCRemote,代码行数:34,
示例18: winaudio_in_finistatic voidwinaudio_in_fini (HWVoiceIn *hw){ WinAudioIn* s = (WinAudioIn*) hw; int i; if (s->wavein) { waveInReset(s->wavein); s->wavein = 0; } for ( i=0; i<NUM_OUT_BUFFERS; ++i ) { if ( s->buffers[i].dwUser != 0xFFFF ) { waveInUnprepareHeader( s->wavein, &s->buffers[i], sizeof(s->buffers[i]) ); s->buffers[i].dwUser = 0xFFFF; } } if (s->buffer_bytes != NULL) { qemu_free(s->buffer_bytes); s->buffer_bytes = NULL; } if (s->wavein) { waveInClose(s->wavein); s->wavein = NULL; }}
开发者ID:ACSOP,项目名称:android_external_qemu,代码行数:29,
示例19: waveInReset/* * Class: com_ibm_media_protocol_device_DataSource * Method: disconnectDevice * Signature: ()V */JNIEXPORT void JNICALL Java_com_ibm_media_protocol_device_DataSource_disconnectDevice(JNIEnv* env, jobject obj) { MMRESULT result; /* first mark all pending buffers as done */ result = waveInReset(hwi); /* DEBUG */ if (result == MMSYSERR_NOERROR) printf("Device reset/n"); else printf("ERROR reseting device !/n"); /* end DEBUG */ result = waveInClose(hwi); /* DEBUG */ if (result == MMSYSERR_NOERROR) printf("Device closed/n"); else printf("ERROR closing device !/n"); /* end DEBUG */}
开发者ID:TheCrazyT,项目名称:jmf,代码行数:30,
示例20: audio_closeint audio_close(snd_type snd){ int i; MMRESULT er; buffer_state *bs = (buffer_state *) snd->u.audio.descriptor; if (snd->write_flag == SND_READ) { if (er = waveInReset(bs->u.h_in)) { mm_error_handler(snd, er, snd_fail); return !SND_SUCCESS; } if (er = waveInClose(bs->u.h_in)) { mm_error_handler(snd, er, snd_fail); return !SND_SUCCESS; } } else { // SND_WRITE if (er = waveOutReset(bs->u.h_out)) { mm_error_handler(snd, er, snd_fail); return !SND_SUCCESS; } if (er = waveOutClose(bs->u.h_out)) { mm_error_handler(snd, er, snd_fail); return !SND_SUCCESS; } } for (i = 0; i < bs->numofbuffers; i++) { snd_free(bs->whdr[i].lpData); } snd_free(bs->whdr); snd_free(bs); if (rt_devices_open) { timeEndPeriod(1); rt_devices_open--; } return SND_SUCCESS;}
开发者ID:lackofentropy,项目名称:nyquist,代码行数:35,
示例21: wavein_closestatic int32wavein_close(ad_rec_t * r){ int32 i, st; /* Unprepare all buffers; multiple unprepares of the same buffer are benign */ for (i = 0; i < r->n_buf; i++) { /* Unpreparing an unprepared buffer, on the other hand, fails on Win98/WinME, though this is not documented - [email C++ waveInGetDevCaps函数代码示例 C++ waveInAddBuffer函数代码示例
|