📄 paqa_errs.c
字号:
SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff, QaCallback, &myData )) == paInvalidDevice)); /*----------------------------- Out of range input device specified: */ ipp.hostApiSpecificStreamInfo = opp.hostApiSpecificStreamInfo = NULL; ipp.sampleFormat = opp.sampleFormat = paFloat32; ipp.channelCount = 0; ipp.device = Pa_GetDeviceCount(); /* And no output device, and no channels. */ opp.channelCount = 0; opp.device = paNoDevice; HOPEFOR(((result = Pa_OpenStream(&stream, &ipp, NULL, SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff, QaCallback, &myData )) == paInvalidDevice)); /*----------------------------- Out of range output device specified: */ ipp.hostApiSpecificStreamInfo = opp.hostApiSpecificStreamInfo = NULL; ipp.sampleFormat = opp.sampleFormat = paFloat32; ipp.channelCount = 0; ipp.device = paNoDevice; /* And no input device, and no channels. */ opp.channelCount = 0; opp.device = Pa_GetDeviceCount(); HOPEFOR(((result = Pa_OpenStream(&stream, NULL, &opp, SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff, QaCallback, &myData )) == paInvalidDevice)); /*----------------------------- Zero input channels: */ ipp.hostApiSpecificStreamInfo = opp.hostApiSpecificStreamInfo = NULL; ipp.sampleFormat = opp.sampleFormat = paFloat32; ipp.channelCount = 0; ipp.device = Pa_GetDefaultInputDevice(); opp.channelCount = 0; opp.device = paNoDevice; /* And no output device, and no output channels. */ HOPEFOR(((result = Pa_OpenStream(&stream, &ipp, NULL, SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff, QaCallback, &myData )) == paInvalidChannelCount)); /*----------------------------- Zero output channels: */ ipp.hostApiSpecificStreamInfo = opp.hostApiSpecificStreamInfo = NULL; ipp.sampleFormat = opp.sampleFormat = paFloat32; ipp.channelCount = 0; ipp.device = paNoDevice; /* And no input device, and no input channels. */ opp.channelCount = 0; opp.device = Pa_GetDefaultOutputDevice(); HOPEFOR(((result = Pa_OpenStream(&stream, NULL, &opp, SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff, QaCallback, &myData )) == paInvalidChannelCount)); /*----------------------------- Nonzero input and output channels but no output device: */ ipp.hostApiSpecificStreamInfo = opp.hostApiSpecificStreamInfo = NULL; ipp.sampleFormat = opp.sampleFormat = paFloat32; ipp.channelCount = 2; ipp.device = Pa_GetDefaultInputDevice(); /* Both stereo. */ opp.channelCount = 2; opp.device = paNoDevice; HOPEFOR(((result = Pa_OpenStream(&stream, &ipp, &opp, SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff, QaCallback, &myData )) == paInvalidDevice)); /*----------------------------- Nonzero input and output channels but no input device: */ ipp.hostApiSpecificStreamInfo = opp.hostApiSpecificStreamInfo = NULL; ipp.sampleFormat = opp.sampleFormat = paFloat32; ipp.channelCount = 2; ipp.device = paNoDevice; opp.channelCount = 2; opp.device = Pa_GetDefaultOutputDevice(); HOPEFOR(((result = Pa_OpenStream(&stream, &ipp, &opp, SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff, QaCallback, &myData )) == paInvalidDevice)); /*----------------------------- NULL stream pointer: */ ipp.hostApiSpecificStreamInfo = opp.hostApiSpecificStreamInfo = NULL; ipp.sampleFormat = opp.sampleFormat = paFloat32; ipp.channelCount = 0; ipp.device = paNoDevice; /* Output is more likely than input. */ opp.channelCount = 2; opp.device = Pa_GetDefaultOutputDevice(); /* Only 2 output channels. */ HOPEFOR(((result = Pa_OpenStream(NULL, &ipp, &opp, SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff, QaCallback, &myData )) == paBadStreamPtr)); /*----------------------------- Low sample rate: */ ipp.hostApiSpecificStreamInfo = opp.hostApiSpecificStreamInfo = NULL; ipp.sampleFormat = opp.sampleFormat = paFloat32; ipp.channelCount = 0; ipp.device = paNoDevice; opp.channelCount = 2; opp.device = Pa_GetDefaultOutputDevice(); HOPEFOR(((result = Pa_OpenStream(&stream, NULL, &opp, 1.0, FRAMES_PER_BUFFER, /* 1 cycle per second (1 Hz) is too low. */ paClipOff, QaCallback, &myData )) == paInvalidSampleRate)); /*----------------------------- High sample rate: */ ipp.hostApiSpecificStreamInfo = opp.hostApiSpecificStreamInfo = NULL; ipp.sampleFormat = opp.sampleFormat = paFloat32; ipp.channelCount = 0; ipp.device = paNoDevice; opp.channelCount = 2; opp.device = Pa_GetDefaultOutputDevice(); HOPEFOR(((result = Pa_OpenStream(&stream, NULL, &opp, 10000000.0, FRAMES_PER_BUFFER, /* 10^6 cycles per second (10 MHz) is too high. */ paClipOff, QaCallback, &myData )) == paInvalidSampleRate)); /*----------------------------- NULL callback: */ /* NULL callback is valid in V19 -- it means use blocking read/write stream ipp.hostApiSpecificStreamInfo = opp.hostApiSpecificStreamInfo = NULL; ipp.sampleFormat = opp.sampleFormat = paFloat32; ipp.channelCount = 0; ipp.device = paNoDevice; opp.channelCount = 2; opp.device = Pa_GetDefaultOutputDevice(); HOPEFOR(((result = Pa_OpenStream(&stream, NULL, &opp, SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff, NULL, &myData )) == paNullCallback)); */ /*----------------------------- Bad flag: */ ipp.hostApiSpecificStreamInfo = opp.hostApiSpecificStreamInfo = NULL; ipp.sampleFormat = opp.sampleFormat = paFloat32; ipp.channelCount = 0; ipp.device = paNoDevice; opp.channelCount = 2; opp.device = Pa_GetDefaultOutputDevice(); HOPEFOR(((result = Pa_OpenStream(&stream, NULL, &opp, SAMPLE_RATE, FRAMES_PER_BUFFER, 255, /* Is 8 maybe legal V19 API? */ QaCallback, &myData )) == paInvalidFlag)); /*----------------------------- using input device as output device: */ if( FindInputOnlyDevice() != paNoDevice ) { ipp.hostApiSpecificStreamInfo = opp.hostApiSpecificStreamInfo = NULL; ipp.sampleFormat = opp.sampleFormat = paFloat32; ipp.channelCount = 0; ipp.device = paNoDevice; /* And no input device, and no channels. */ opp.channelCount = 2; opp.device = FindInputOnlyDevice(); HOPEFOR(((result = Pa_OpenStream(&stream, NULL, &opp, SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff, QaCallback, &myData )) == paInvalidChannelCount)); } /*----------------------------- using output device as input device: */ if( FindOutputOnlyDevice() != paNoDevice ) { ipp.hostApiSpecificStreamInfo = opp.hostApiSpecificStreamInfo = NULL; ipp.sampleFormat = opp.sampleFormat = paFloat32; ipp.channelCount = 2; ipp.device = FindOutputOnlyDevice(); opp.channelCount = 0; opp.device = paNoDevice; /* And no output device, and no channels. */ HOPEFOR(((result = Pa_OpenStream(&stream, &ipp, NULL, SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff, QaCallback, &myData )) == paInvalidChannelCount)); } if( stream != NULL ) Pa_CloseStream( stream ); return result;}/*-----------------------------------------------------------------------------------------*/static int TestBadActions( void ){ PaStream* stream = NULL; PaError result; PaQaData myData; PaStreamParameters opp; /* Setup data for synthesis thread. */ myData.framesLeft = (unsigned long)(SAMPLE_RATE * 100); /* 100 seconds */ myData.numChannels = 1; myData.mode = MODE_OUTPUT; opp.device = Pa_GetDefaultOutputDevice(); /* Default output. */ opp.channelCount = 2; /* Stereo output. */ opp.hostApiSpecificStreamInfo = NULL; opp.sampleFormat = paFloat32; opp.suggestedLatency = Pa_GetDeviceInfo(opp.device)->defaultLowOutputLatency; HOPEFOR(((result = Pa_OpenStream(&stream, NULL, /* Take NULL as input parame- */ &opp, /* ters, meaning try only output. */ SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff, QaCallback, &myData )) == paNoError)); HOPEFOR(((result = Pa_StartStream(NULL)) == paBadStreamPtr)); HOPEFOR(((result = Pa_StopStream(NULL)) == paBadStreamPtr)); HOPEFOR(((result = Pa_IsStreamStopped(NULL)) == paBadStreamPtr)); HOPEFOR(((result = Pa_IsStreamActive(NULL)) == paBadStreamPtr)); HOPEFOR(((result = Pa_CloseStream(NULL)) == paBadStreamPtr)); HOPEFOR(((result = Pa_SetStreamFinishedCallback(NULL, NULL)) == paBadStreamPtr)); HOPEFOR(((result = !Pa_GetStreamInfo(NULL)))); HOPEFOR(((result = Pa_GetStreamTime(NULL)) == 0.0)); HOPEFOR(((result = Pa_GetStreamCpuLoad(NULL)) == 0.0)); HOPEFOR(((result = Pa_ReadStream(NULL, NULL, 0)) == paBadStreamPtr)); HOPEFOR(((result = Pa_WriteStream(NULL, NULL, 0)) == paBadStreamPtr)); /** @todo test Pa_GetStreamReadAvailable and Pa_GetStreamWriteAvailable */ if (stream != NULL) Pa_CloseStream(stream); return result;}/*---------------------------------------------------------------------*/int main(void);int main(void){ PaError result; EXPECT(((result = Pa_Initialize()) == paNoError)); TestBadOpens(); TestBadActions();error: Pa_Terminate(); printf("QA Report: %d passed, %d failed.\n", gNumPassed, gNumFailed); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -