这篇教程C++ waveInGetNumDevs函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中waveInGetNumDevs函数的典型用法代码示例。如果您正苦于以下问题:C++ waveInGetNumDevs函数的具体用法?C++ waveInGetNumDevs怎么用?C++ waveInGetNumDevs使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了waveInGetNumDevs函数的27个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: Q_UNUSEDQList<QByteArray> QAudioDeviceInfoInternal::availableDevices(QAudio::Mode mode){ Q_UNUSED(mode) QList<QByteArray> devices; if(mode == QAudio::AudioOutput) { WAVEOUTCAPS woc; unsigned long iNumDevs,i; iNumDevs = waveOutGetNumDevs(); for(i=0;i<iNumDevs;i++) { if(waveOutGetDevCaps(i, &woc, sizeof(WAVEOUTCAPS)) == MMSYSERR_NOERROR) { devices.append(QString((const QChar *)woc.szPname).toLocal8Bit().constData()); } } } else { WAVEINCAPS woc; unsigned long iNumDevs,i; iNumDevs = waveInGetNumDevs(); for(i=0;i<iNumDevs;i++) { if(waveInGetDevCaps(i, &woc, sizeof(WAVEINCAPS)) == MMSYSERR_NOERROR) { devices.append(QString((const QChar *)woc.szPname).toLocal8Bit().constData()); } } } if(devices.count() > 0) devices.append("default"); return devices;}
开发者ID:kuailexs,项目名称:symbiandump-mw3,代码行数:33,
示例2: Java_craigl_winrecorder_WinRecorder_nativeHasSoundCard// Determine if this computer has a sound card capable of recordingJNIEXPORT jboolean JNICALL Java_craigl_winrecorder_WinRecorder_nativeHasSoundCard( JNIEnv *env, jobject o) { WAVEINCAPS waveInCaps; BOOL success; if (waveInGetNumDevs() == 0) return FALSE; // We have a recording device, grab its specs success = (waveInGetDevCaps(0, &waveInCaps, sizeof(WAVEINCAPS)) == MMSYSERR_NOERROR); if (success) {#ifdef DEBUG // Display info printf("Manufacturer ID: %d/n", waveInCaps.wMid); printf("Product ID: %d/n", waveInCaps.wPid); printf("Maj Version: %d/n", waveInCaps.vDriverVersion >> 8); printf("Min Version: %d/n", waveInCaps.vDriverVersion & 255); printf("Product Name: %s/n", waveInCaps.szPname); printf("Formats: %x/n", waveInCaps.dwFormats); printf("Channels: %d/n", waveInCaps.wChannels);#endif return TRUE; } else return FALSE;
开发者ID:KolonelKustard,项目名称:nostalgianet,代码行数:28,
示例3: InitializeWaveInbool CAudio::InitializeWaveIn(){ if (!waveInGetNumDevs()) return false; MMRESULT mmResult; DWORD dwThreadID = 0; m_hThreadCallBack = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)waveInCallBack, (LPVOID)this, CREATE_SUSPENDED, &dwThreadID); mmResult = waveInOpen(&m_hWaveIn, (WORD)WAVE_MAPPER, &(m_GSMWavefmt.wfx), (LONG)dwThreadID, (LONG)0, CALLBACK_THREAD); if (mmResult != MMSYSERR_NOERROR) return false; for (int i = 0; i < 2; i++) { m_lpInAudioHdr[i]->lpData = (LPSTR)m_lpInAudioData[i]; m_lpInAudioHdr[i]->dwBufferLength = m_nBufferLength; m_lpInAudioHdr[i]->dwFlags = 0; m_lpInAudioHdr[i]->dwLoops = 0; waveInPrepareHeader(m_hWaveIn, m_lpInAudioHdr[i], sizeof(WAVEHDR)); } waveInAddBuffer(m_hWaveIn, m_lpInAudioHdr[m_nWaveInIndex], sizeof(WAVEHDR)); ResumeThread(m_hThreadCallBack); waveInStart(m_hWaveIn); m_bIsWaveInUsed = true; return true;}
开发者ID:nickwu1220,项目名称:PCRemote,代码行数:32,
示例4: mmio_listdevs/* list the audio and MIDI device names */void mmio_listdevs(void){ UINT wRtn, ndevices; unsigned int i; ndevices = waveInGetNumDevs(); for (i = 0; i < ndevices; i++) { WAVEINCAPS wicap; wRtn = waveInGetDevCaps(i, (LPWAVEINCAPS) &wicap, sizeof(wicap)); if (wRtn) nt_waveinerror("waveInGetDevCaps: %s/n", wRtn); else fprintf(stderr, "audio input device #%d: %s/n", i+1, wicap.szPname); } ndevices = waveOutGetNumDevs(); for (i = 0; i < ndevices; i++) { WAVEOUTCAPS wocap; wRtn = waveOutGetDevCaps(i, (LPWAVEOUTCAPS) &wocap, sizeof(wocap)); if (wRtn) nt_waveouterror("waveOutGetDevCaps: %s/n", wRtn); else fprintf(stderr, "audio output device #%d: %s/n", i+1, wocap.szPname); }}
开发者ID:BurntBrunch,项目名称:rockbox-fft,代码行数:28,
示例5: initAudioDevicesvoid initAudioDevices(SIPX_INSTANCE_DATA& pInst){#if defined(_WIN32) WAVEOUTCAPS outcaps; WAVEINCAPS incaps; int numDevices; MMRESULT result; numDevices = waveInGetNumDevs(); for (int i = 0; i < numDevices && i < MAX_AUDIO_DEVICES; i++) { result = waveInGetDevCaps(i, &incaps, sizeof(WAVEINCAPS)); assert(result == MMSYSERR_NOERROR); pInst.inputAudioDevices[i] = SAFE_STRDUP(incaps.szPname); } pInst.nInputAudioDevices = numDevices; numDevices = waveOutGetNumDevs(); for (int i = 0; i < numDevices && i < MAX_AUDIO_DEVICES; i++) { result = waveOutGetDevCaps(i, &outcaps, sizeof(WAVEOUTCAPS)); assert(result == MMSYSERR_NOERROR); pInst.outputAudioDevices[i] = SAFE_STRDUP(outcaps.szPname) ; } pInst.nOutputAudioDevices = numDevices;#else pInst.inputAudioDevices[0] = SAFE_STRDUP("Default"); pInst.outputAudioDevices[0] = SAFE_STRDUP("Default");#endif}
开发者ID:Jaroslav23,项目名称:sipxtapi,代码行数:31,
示例6: mmio_getdevsvoid mmio_getdevs(char *indevlist, int *nindevs, char *outdevlist, int *noutdevs, int *canmulti, int maxndev, int devdescsize){ int wRtn, ndev, i; *canmulti = 2; /* supports multiple devices */ ndev = waveInGetNumDevs(); if (ndev > maxndev) ndev = maxndev; *nindevs = ndev; for (i = 0; i < ndev; i++) { WAVEINCAPS wicap; wRtn = waveInGetDevCaps(i, (LPWAVEINCAPS) &wicap, sizeof(wicap)); sprintf(indevlist + i * devdescsize, (wRtn ? "???" : wicap.szPname)); } ndev = waveOutGetNumDevs(); if (ndev > maxndev) ndev = maxndev; *noutdevs = ndev; for (i = 0; i < ndev; i++) { WAVEOUTCAPS wocap; wRtn = waveOutGetDevCaps(i, (LPWAVEOUTCAPS) &wocap, sizeof(wocap)); sprintf(outdevlist + i * devdescsize, (wRtn ? "???" : wocap.szPname)); }}
开发者ID:BurntBrunch,项目名称:rockbox-fft,代码行数:29,
示例7: waveInGetNumDevsvoid CSettingsDlg::OnButtonAudioinput() { std::vector<CString> deviceList; //Obtain the number of input devices on the system DWORD numWaveInputDevices = waveInGetNumDevs(); //Scan through each input device to see if we can find the FM Radio for (DWORD i = 0; i < numWaveInputDevices; i++) { WAVEINCAPS waveInputCapabilities; //Get the device capabilities of the currently indexed device if (waveInGetDevCaps(i, &waveInputCapabilities, sizeof(waveInputCapabilities)) == MMSYSERR_NOERROR) { deviceList.push_back(waveInputCapabilities.szPname); } } CDeviceSelectDlg deviceSelectDlg(&deviceList, m_RadioIndex); if (deviceSelectDlg.DoModal() == IDOK) { m_RadioIndex = deviceSelectDlg.GetIndex(); }}
开发者ID:kobayosi,项目名称:usbradio,代码行数:26,
示例8: widGetDevCapsstatic DWORD widGetDevCaps(UINT wDevID, WAVEMAPDATA* wim, LPWAVEINCAPSW lpWaveCaps, DWORD dwParam2){ TRACE("(%04x, %p %p %08x)/n", wDevID, wim, lpWaveCaps, dwParam2); /* if opened low driver, forward message */ if (WAVEMAP_IsData(wim)) return waveInGetDevCapsW((UINT_PTR)wim->u.in.hInnerWave, lpWaveCaps, dwParam2); /* else if no drivers, nothing to map so return bad device */ if (waveInGetNumDevs() == 0) { WARN("bad device id/n"); return MMSYSERR_BADDEVICEID; } /* otherwise, return caps of mapper itself */ if (wDevID == (UINT)-1 || wDevID == (UINT16)-1) { WAVEINCAPSW wic; static const WCHAR init[] = {'W','i','n','e',' ','w','a','v','e',' ','i','n',' ','m','a','p','p','e','r',0}; wic.wMid = 0x00FF; wic.wPid = 0x0001; wic.vDriverVersion = 0x0001; strcpyW(wic.szPname, init); wic.dwFormats = WAVE_FORMAT_96M08 | WAVE_FORMAT_96S08 | WAVE_FORMAT_96M16 | WAVE_FORMAT_96S16 | WAVE_FORMAT_48M08 | WAVE_FORMAT_48S08 | WAVE_FORMAT_48M16 | WAVE_FORMAT_48S16 | WAVE_FORMAT_4M08 | WAVE_FORMAT_4S08 | WAVE_FORMAT_4M16 | WAVE_FORMAT_4S16 | WAVE_FORMAT_2M08 | WAVE_FORMAT_2S08 | WAVE_FORMAT_2M16 | WAVE_FORMAT_2S16 | WAVE_FORMAT_1M08 | WAVE_FORMAT_1S08 | WAVE_FORMAT_1M16 | WAVE_FORMAT_1S16; wic.wChannels = 2; memcpy(lpWaveCaps, &wic, min(dwParam2, sizeof(wic))); return MMSYSERR_NOERROR; } ERR("This shouldn't happen/n"); return MMSYSERR_ERROR;}
开发者ID:Strongc,项目名称:reactos,代码行数:34,
示例9: wave_in_testsstatic void wave_in_tests(void){ WAVEINCAPSA capsA; WAVEINCAPSW capsW; WAVEFORMATEX format; HWAVEIN win; MMRESULT rc; DWORD preferred, status; UINT ndev,d; ndev=waveInGetNumDevs(); trace("found %d WaveIn devices/n",ndev); rc = waveInMessage((HWAVEIN)WAVE_MAPPER, DRVM_MAPPER_PREFERRED_GET, (DWORD_PTR)&preferred, (DWORD_PTR)&status); ok((ndev == 0 && (rc == MMSYSERR_NODRIVER || rc == MMSYSERR_BADDEVICEID)) || rc == MMSYSERR_NOTSUPPORTED || rc == MMSYSERR_NOERROR, "waveInMessage(DRVM_MAPPER_PREFERRED_GET) failed: %u/n", rc); if(rc != MMSYSERR_NOTSUPPORTED) ok((ndev == 0 && (preferred == -1 || broken(preferred != -1))) || preferred < ndev, "Got invalid preferred device: 0x%x/n", preferred); rc=waveInGetDevCapsA(ndev+1,&capsA,sizeof(capsA)); ok(rc==MMSYSERR_BADDEVICEID, "waveInGetDevCapsA(%s): MMSYSERR_BADDEVICEID expected, got %s/n", dev_name(ndev+1),wave_in_error(rc)); rc=waveInGetDevCapsA(WAVE_MAPPER,&capsA,sizeof(capsA)); ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_NODRIVER || (!ndev && (rc==MMSYSERR_BADDEVICEID)), "waveInGetDevCapsA(%s): got %s/n",dev_name(WAVE_MAPPER),wave_in_error(rc)); rc=waveInGetDevCapsW(ndev+1,&capsW,sizeof(capsW)); ok(rc==MMSYSERR_BADDEVICEID || rc==MMSYSERR_NOTSUPPORTED, "waveInGetDevCapsW(%s): MMSYSERR_BADDEVICEID or MMSYSERR_NOTSUPPORTED " "expected, got %s/n",dev_name(ndev+1),wave_in_error(rc)); rc=waveInGetDevCapsW(WAVE_MAPPER,&capsW,sizeof(capsW)); ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_NODRIVER || rc==MMSYSERR_NOTSUPPORTED || (!ndev && (rc==MMSYSERR_BADDEVICEID)), "waveInGetDevCapsW(%s): got %s/n", dev_name(ndev+1),wave_in_error(rc)); format.wFormatTag=WAVE_FORMAT_PCM; format.nChannels=2; format.wBitsPerSample=16; format.nSamplesPerSec=44100; format.nBlockAlign=format.nChannels*format.wBitsPerSample/8; format.nAvgBytesPerSec=format.nSamplesPerSec*format.nBlockAlign; format.cbSize=0; rc=waveInOpen(&win,ndev+1,&format,0,0,CALLBACK_NULL); ok(rc==MMSYSERR_BADDEVICEID, "waveInOpen(%s): MMSYSERR_BADDEVICEID expected, got %s/n", dev_name(ndev+1),wave_in_error(rc)); for (d=0;d<ndev;d++) wave_in_test_device(d); if (ndev>0) wave_in_test_device(WAVE_MAPPER);}
开发者ID:evelikov,项目名称:wine,代码行数:60,
示例10: OpenWaveIn// Open wave input channelint OpenWaveIn(HWAVEIN* hWaveIn, WAVEFORMATEX* wf){ int res; char lpTemp[256]; res = waveInGetNumDevs(); if (! res ) { _debug_print("Access WaveIn channel FAILED!",1); return -1; } else { _debug_print("Access WaveIn channel SUCCEED!"); } // Open wave input channel res = waveInOpen(hWaveIn,WAVE_MAPPER, wf, (DWORD)NULL,0L,CALLBACK_WINDOW); if ( res != MMSYSERR_NOERROR ) { sprintf(lpTemp, "Open wave input channel FAILED C++ waveInOpen函数代码示例 C++ waveInGetDevCaps函数代码示例
|