这篇教程C++ waveOutRestart函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中waveOutRestart函数的典型用法代码示例。如果您正苦于以下问题:C++ waveOutRestart函数的具体用法?C++ waveOutRestart怎么用?C++ waveOutRestart使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了waveOutRestart函数的26个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: if void MediaObject::play() { if ((m_state == Phonon::PlayingState) && !m_paused && !m_stopped) return; if ((m_state == Phonon::LoadingState) || (m_state == Phonon::BufferingState) || (m_state == Phonon::ErrorState)) { setError(Phonon::FatalError, QLatin1String("illegale state for playback")); return; } if (m_state == Phonon::StoppedState) stop(); if (m_sourceIsValid) { setState(Phonon::PlayingState); if (!m_paused) { m_nextBufferIndex = true; m_stopped = false; playBuffer(m_soundBuffer1.waveHeader); playBuffer(m_soundBuffer2.waveHeader); } else { if (!(waveOutRestart(m_hWaveOut) == MMSYSERR_NOERROR)) setError(Phonon::NormalError, QLatin1String("cannot resume (system)")); } } else { setError(Phonon::FatalError, QLatin1String("cannot playback invalid source")); } m_paused = false; }
开发者ID:sandsmark,项目名称:phonon-visualization-gsoc,代码行数:29,
示例2: PJ_DEF/** Start stream.*/PJ_DEF(pj_status_t) pjmedia_snd_stream_start(pjmedia_snd_stream *stream){ MMRESULT mr; PJ_UNUSED_ARG(stream); if (stream->play_strm.hWave.Out != NULL) { mr = waveOutRestart(stream->play_strm.hWave.Out); if (mr != MMSYSERR_NOERROR) /* TODO: This macro is supposed to be used for HRESULT, fix. */ PJ_RETURN_OS_ERROR(mr); PJ_LOG(5,(THIS_FILE, "WMME playback stream started")); } if (stream->rec_strm.hWave.In != NULL) { mr = waveInStart(stream->rec_strm.hWave.In); if (mr != MMSYSERR_NOERROR) /* TODO: This macro is supposed to be used for HRESULT, fix. */ PJ_RETURN_OS_ERROR(mr); PJ_LOG(5,(THIS_FILE, "WMME capture stream started")); } return PJ_SUCCESS;}
开发者ID:deveck,项目名称:Deveck.TAM,代码行数:29,
示例3: renderstartvoid renderstart(void *hrender){ if (!hrender) return; RENDER *render = (RENDER*)hrender; waveOutRestart(render->hWaveOut); render->nRenderStatus &= ~RS_PAUSE;}
开发者ID:wnpllrzodiac,项目名称:ffplayer-android,代码行数:7,
示例4: waveOutRestartvoid SoundCardPMO::Resume(void){ if (m_initialized) waveOutRestart(m_hwo); PhysicalMediaOutput::Resume();}
开发者ID:pontocom,项目名称:opensdrm,代码行数:7,
示例5: set_pausestaticint set_pause(int flag){ static int paused; MMRESULT error; if (flag && !paused) { error = waveOutPause(wave_handle); if (error != MMSYSERR_NOERROR) { audio_error = error_text(error); return -1; } } else if (!flag && paused) { error = waveOutRestart(wave_handle); if (error != MMSYSERR_NOERROR) { audio_error = error_text(error); return -1; } } paused = flag; return 0;}
开发者ID:Rambonuaa,项目名称:BoundCheck4,代码行数:25,
示例6: waveOutSetVolumeint EmuOutMod::Write(char *buf, int len) { ::WaitForSingleObject(m_mutex, INFINITE); int rest = m_buf_rest; ::ReleaseMutex(m_mutex); if(rest<len) return 1; waveOutSetVolume(m_hwo, (DWORD)(m_volume<<16)|m_volume); for(int i=0; i<len; i++) { m_buf[m_buf_idx%m_ring_size][m_buf_pos++] = buf[i]; rest--; if(m_buf_pos==m_buf_size) { waveOutPrepareHeader(m_hwo, &m_wh[m_buf_idx%m_ring_size], sizeof(WAVEHDR)) ; waveOutWrite(m_hwo, &m_wh[m_buf_idx%m_ring_size], sizeof(WAVEHDR)) ; if(m_playing) waveOutRestart(m_hwo); m_buf_pos = 0; m_buf_idx ++; //waveOutUnprepareHeader(m_hwo, &m_wh[m_buf_idx%m_ring_size], sizeof(WAVEHDR)); } } ::WaitForSingleObject(m_mutex, INFINITE); m_buf_rest -= len; ::ReleaseMutex(m_mutex); return 0;}
开发者ID:AdmiralCurtiss,项目名称:nsfplay,代码行数:29,
示例7: winwave_ctl_outstatic int winwave_ctl_out (HWVoiceOut *hw, int cmd, ...){ MMRESULT mr; WaveVoiceOut *wave = (WaveVoiceOut *) hw; switch (cmd) { case VOICE_ENABLE: { va_list ap; int poll_mode; va_start (ap, cmd); poll_mode = va_arg (ap, int); va_end (ap); if (poll_mode && !wave->event) { wave->event = CreateEvent (NULL, TRUE, TRUE, NULL); if (!wave->event) { dolog ("DAC CreateEvent: %lx, poll mode will be disabled/n", GetLastError ()); } } if (wave->event) { int ret; ret = qemu_add_wait_object (wave->event, winwave_poll, wave); hw->poll_mode = (ret == 0); } else { hw->poll_mode = 0; } if (wave->paused) { mr = waveOutRestart (wave->hwo); if (mr != MMSYSERR_NOERROR) { winwave_logerr (mr, "waveOutRestart"); } wave->paused = 0; } } return 0; case VOICE_DISABLE: if (!wave->paused) { mr = waveOutPause (wave->hwo); if (mr != MMSYSERR_NOERROR) { winwave_logerr (mr, "waveOutPause"); } else { wave->paused = 1; } } if (wave->event) { qemu_del_wait_object (wave->event, winwave_poll, wave); } return 0; } return -1;}
开发者ID:0bliv10n,项目名称:s2e,代码行数:59,
示例8: waveOutPauseint EmuOutMod::Pause(int pause) { if(pause) { waveOutPause(m_hwo); m_playing = false; } else { waveOutRestart(m_hwo); m_playing = true; } return !pause;}
开发者ID:AdmiralCurtiss,项目名称:nsfplay,代码行数:10,
示例9: aviaudioPlay// Play audio, starting at a given frame/sampleBOOL CALLBACK aviaudioPlay(HWND hwnd, PAVISTREAM pavi, LONG lStart, LONG lEnd, BOOL fWait){ if (audioPlayable <= 0) return FALSE; recalc = 1; //CString tx; //tx.Format("audioPlayable %d",audioPlayable); //MessageBox(NULL,tx,"Note",MB_OK); CString msx; if (lStart < 0) lStart = ::AVIStreamStart(pavi); if (lEnd < 0) lEnd = AVIStreamEnd(pavi); if (lStart >= lEnd) { return FALSE; } if (!aviaudioOpenDevice(hwnd, pavi)) { MessageBox(NULL,"AudioOpen failed","Note",MB_OK | MB_ICONEXCLAMATION); return FALSE; } if (!sfPlaying) { // We're beginning play, so pause until we've filled the buffers // for a seamless start waveOutPause(shWaveOut); slBegin = lStart; slCurrent = lStart; slEnd = lEnd; sfPlaying = TRUE; } else { slEnd = lEnd; } aviaudioiFillBuffers(); // Now unpause the audio and away it goes! waveOutRestart(shWaveOut); // Caller wants us not to return until play is finished if (fWait) { while (swBuffersOut > 0) Yield(); } return TRUE;}
开发者ID:aisnote,项目名称:camstudio-clone,代码行数:55,
示例10: DSOUND_PrimaryPlayHRESULT DSOUND_PrimaryPlay(DirectSoundDevice *device){ HRESULT err = DS_OK; TRACE("(%p)/n", device); err = mmErr(waveOutRestart(device->hwo)); if (err != DS_OK) WARN("waveOutRestart failed/n"); return err;}
开发者ID:YokoZar,项目名称:wine,代码行数:11,
示例11: waveOutRestartvoid audio_waveout::play(void){ MMRESULT err; unsigned int i; if (!main_buffer) { /* TODO; throw error, or assert */ return; } /* If the status is PAUSED, we have to resume the audio playing */ if (status == WAVEOUT_PAUSED) { /* Updates status */ status = WAVEOUT_PLAYING; /* Tells to the driver to resume audio playing */ waveOutRestart(waveout_handle); /* Wakeup playing thread */ SetEvent(wakeup_playthread); return; } /* if status == WAVEOUT_PAUSED */ if (status != WAVEOUT_READY) return; /* Prepares WAVEHDR structures */ prep_headers_(); /* Sets correct status */ status = WAVEOUT_PLAYING; /* Reads the audio from the start */ //audio_buf.set_position_start(); /* Reads the first N bytes from the audio buffer, where N = the total size of all little buffers */ audio_buf.read(main_buffer, mb_size); /* Wakeup the playing thread */ SetEvent(wakeup_playthread); /* Sends all the little buffers to the audio driver, so it can play the sound data */ for (i = 0; i < buffers; ++i) { err = waveOutWrite(waveout_handle, &wave_headers[i], sizeof(WAVEHDR)); if (err != MMSYSERR_NOERROR) { MessageBox(0, _T("waveOutWrite Error"), 0, 0); /* TODO: throw error */ } }}
开发者ID:GYGit,项目名称:reactos,代码行数:53,
示例12: waveOutRestart MMRESULT TinyWaveOut::Restart() { if (hWaveOut == NULL) return S_FALSE; MMRESULT hRes = waveOutRestart(hWaveOut); if (hRes != MMSYSERR_NOERROR) { waveOutClose(hWaveOut); hWaveOut = NULL; return S_FALSE; } return S_OK; }
开发者ID:maerson,项目名称:GUI-TinyUI,代码行数:12,
示例13: sa_stream_resume/** Resume playing after a pause */int sa_stream_resume(sa_stream_t *s) { int status; ERROR_IF_NO_INIT(s); status = waveOutRestart(s->hWaveOut); HANDLE_WAVE_ERROR(status, "resuming audio playback"); s->playing = 1; return SA_SUCCESS;}
开发者ID:Akin-Net,项目名称:mozilla-central,代码行数:13,
示例14: bool VDAudioOutputWaveOutW32::Start() { if (mCurState == kStateSilent) return true; if (mCurState < kStateOpened) return false; if (MMSYSERR_NOERROR != waveOutRestart(mhWaveOut)) return false; mCurState = kStatePlaying; return true;}
开发者ID:KGE-INC,项目名称:VirtualDub,代码行数:14,
示例15: WaveLib_Pause /*********************************************************************** * WaveLib_Pause * * Audio! * * Parameters * * * Return Value * Handle To This Audio Session * ***********************************************************************/ void WaveLib_Pause(HWAVELIB hWaveLib, BOOL bPause) { PWAVELIB pWaveLib = (PWAVELIB)hWaveLib; pWaveLib->bPaused = bPause; if(pWaveLib->bPaused) { waveOutPause(pWaveLib->hWaveOut); } else { waveOutRestart(pWaveLib->hWaveOut); } }
开发者ID:souri,项目名称:myaudioplayer,代码行数:27,
示例16: Pauseint WaveOut::Pause(int pause){ bool waspaused = _paused; if (pause) { if (!waspaused) waveOutPause(_device); _paused = true; } else { if (waspaused) waveOutRestart(_device); _paused = false; } return waspaused?1:0;}
开发者ID:svn2github,项目名称:Brany_Skeldalu,代码行数:15,
示例17: lockvoid COutput::Pause(BOOL fPause){ if (!m_hwo) return; if (m_fDoubleBuf) m_fPaused = fPause; else { CAutoLock lock(&m_csecDevice); if (fPause) waveOutPause(m_hwo); else waveOutRestart(m_hwo); }}
开发者ID:v-zaburdaev,项目名称:Gsplayer2,代码行数:15,
示例18: winaudio_out_ctlstatic intwinaudio_out_ctl (HWVoiceOut *hw, int cmd, ...){ WinAudioOut* s = (WinAudioOut*) hw; switch (cmd) { case VOICE_ENABLE: waveOutRestart( s->waveout ); break; case VOICE_DISABLE: waveOutPause( s->waveout ); break; } return 0;}
开发者ID:ACSOP,项目名称:android_external_qemu,代码行数:16,
示例19: native_midi_pausevoid native_midi_pause(int pauseon) //maks{ static int pause = 0; if(hMidiStream) { if(pauseon && !pause) { waveOutPause(hMidiStream); pause = 1; } else if(!pauseon && pause) { waveOutRestart(hMidiStream); pause = 0; } }}
开发者ID:cubemoon,项目名称:game-editor,代码行数:17,
示例20: DSOUND_PrimaryPlayHRESULT DSOUND_PrimaryPlay(DirectSoundDevice *device){ HRESULT err = DS_OK; TRACE("(%p)/n", device); if (device->hwbuf) { err = IDsDriverBuffer_Play(device->hwbuf, 0, 0, DSBPLAY_LOOPING); if (err != DS_OK) WARN("IDsDriverBuffer_Play failed/n"); } else { err = mmErr(waveOutRestart(device->hwo)); if (err != DS_OK) WARN("waveOutRestart failed/n"); } return err;}
开发者ID:carlosbislip,项目名称:wine,代码行数:17,
示例21: cubeb_stream_startintcubeb_stream_start(cubeb_stream * stm){ MMRESULT r; EnterCriticalSection(&stm->lock); r = waveOutRestart(stm->waveout); LeaveCriticalSection(&stm->lock); if (r != MMSYSERR_NOERROR) { return CUBEB_ERROR; } stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_STARTED); return CUBEB_OK;}
开发者ID:FunkyVerb,项目名称:devtools-window,代码行数:17,
示例22: playsoundint playsound(AUDIO_t *audio) { if (audio->init == 0) { soundinit(audio); } else { int i,b; audio->PlayTime = tc_elapsed(audio->timer_c) - (BankTime * ((float)BufferBanks)); audio->PlayPnt = (audio->CurPnt-(PreferedSamples * BufferBanks)) % BufferSamples; for(b = 0; b < BufferBanks; b++) { for(i = 0; i < PreferedSamples; i++) { audio->playbuf[b][i].left = 0x80; audio->playbuf[b][i].right = 0x80; } } waveOutRestart(audio->hWaveOut); audio->enabled = 1; } return 0;}
开发者ID:alberthdev,项目名称:wxwabbitemu,代码行数:18,
示例23: playsoundint playsound(AUDIO_t *audio) { if (audio->init == 0) { soundinit(audio); } else { audio->PlayTime = audio->timer_c->elapsed - (BANK_TIME * ((float)BUFFER_BANKS)); audio->PlayPnt = (audio->CurPnt - (PREFERED_SAMPLES * BUFFER_BANKS)) % BUFFER_SMAPLES; for (int b = 0; b < BUFFER_BANKS; b++) { for (int i = 0; i < PREFERED_SAMPLES; i++) { audio->playbuf[b][i].left = 0x80; audio->playbuf[b][i].right = 0x80; } }#ifdef _WINDOWS waveOutRestart(audio->hWaveOut);#endif audio->enabled = TRUE; } return 0;}
开发者ID:BuckeyeDude,项目名称:Wabbitemu,代码行数:20,
示例24: MCIAVI_mciResume/*************************************************************************** * MCIAVI_mciResume [internal] */static DWORD MCIAVI_mciResume(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS lpParms){ WINE_MCIAVI *wma; TRACE("(%04x, %08X, %p)/n", wDevID, dwFlags, lpParms); wma = MCIAVI_mciGetOpenDev(wDevID); if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; if (dwFlags & MCI_TEST) return 0; EnterCriticalSection(&wma->cs); if (wma->dwStatus == MCI_MODE_PAUSE) wma->dwStatus = MCI_MODE_PLAY; if (wma->lpWaveFormat) { LeaveCriticalSection(&wma->cs); return waveOutRestart(wma->hWave); } LeaveCriticalSection(&wma->cs); return 0;}
开发者ID:AlexSteel,项目名称:wine,代码行数:26,
示例25: pcm_submitint pcm_submit(){ if (!sound || !wout) { pcm.pos = 0; return 0; } if (pcm.pos) { hdr[curbuf].dwBufferLength = pcm.pos * cb_per_sample; hdr[curbuf].dwBytesRecorded = pcm.pos * cb_per_sample; waveOutPrepareHeader(wout, &hdr[curbuf], sizeof WAVEHDR); waveOutWrite(wout, &hdr[curbuf], sizeof WAVEHDR); total_bytes += pcm.pos * cb_per_sample; if (soundresume) waveOutRestart(wout); if (g_fThrottling) { int start = timer_time_in_msec(); if (WaitForSingleObject(semaph, WOUT_TIMEOUT) == WAIT_TIMEOUT) { waveOutReset(wout); while (ReleaseSemaphore(semaph, 1, NULL)); waveOutPause(wout); soundresume = 1; } last_wait_time += timer_time_in_msec() - start; } curbuf = (curbuf + 1) % buffers; pcm.buf = buf + pcm.len * curbuf * cb_per_sample; pcm.pos = 0; } return 0;}
开发者ID:milot-mirdita,项目名称:PocketGnuBoy,代码行数:36,
示例26: PauseStreamvoid PauseStream(bool PauseOn){ UINT32 RetVal; if (! WaveOutOpen) return; // Thread is not active#ifdef WIN32 switch(PauseOn) { case true: RetVal = waveOutPause(hWaveOut); break; case false: RetVal = waveOutRestart(hWaveOut); break; } StreamPause = PauseOn;#else PauseThread = PauseOn;#endif return;}
开发者ID:codeman38,项目名称:vgmplay,代码行数:24,
注:本文中的waveOutRestart函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ waveOutUnprepareHeader函数代码示例 C++ waveOutPrepareHeader函数代码示例 |