mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-29 20:27:12 +01:00
testaudiocapture: use capture device buffer queueing, for better test coverage.
This commit is contained in:
parent
7315390171
commit
a15b974044
@ -21,12 +21,6 @@ static SDL_AudioSpec spec;
|
|||||||
static SDL_AudioDeviceID devid_in = 0;
|
static SDL_AudioDeviceID devid_in = 0;
|
||||||
static SDL_AudioDeviceID devid_out = 0;
|
static SDL_AudioDeviceID devid_out = 0;
|
||||||
|
|
||||||
void SDLCALL
|
|
||||||
capture_callback(void *arg, Uint8 * stream, int len)
|
|
||||||
{
|
|
||||||
SDL_QueueAudio(devid_out, stream, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
loop()
|
loop()
|
||||||
{
|
{
|
||||||
@ -76,6 +70,18 @@ loop()
|
|||||||
#endif
|
#endif
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Note that it would be easier to just have a one-line function that
|
||||||
|
calls SDL_QueueAudio() as a capture device callback, but we're
|
||||||
|
trying to test the API, so we use SDL_DequeueAudio() here. */
|
||||||
|
while (SDL_TRUE) {
|
||||||
|
Uint8 buf[1024];
|
||||||
|
const Uint32 br = SDL_DequeueAudio(devid_in, buf, sizeof (buf));
|
||||||
|
SDL_QueueAudio(devid_out, buf, br);
|
||||||
|
if (br < sizeof (buf)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
@ -113,7 +119,7 @@ main(int argc, char **argv)
|
|||||||
spec.format = AUDIO_F32SYS;
|
spec.format = AUDIO_F32SYS;
|
||||||
spec.channels = 1;
|
spec.channels = 1;
|
||||||
spec.samples = 1024;
|
spec.samples = 1024;
|
||||||
spec.callback = capture_callback;
|
spec.callback = NULL;
|
||||||
|
|
||||||
SDL_Log("Opening capture device %s%s%s...\n",
|
SDL_Log("Opening capture device %s%s%s...\n",
|
||||||
devname ? "'" : "",
|
devname ? "'" : "",
|
||||||
@ -128,7 +134,6 @@ main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
SDL_Log("Opening default playback device...\n");
|
SDL_Log("Opening default playback device...\n");
|
||||||
spec.callback = NULL;
|
|
||||||
devid_out = SDL_OpenAudioDevice(NULL, SDL_FALSE, &spec, &spec, 0);
|
devid_out = SDL_OpenAudioDevice(NULL, SDL_FALSE, &spec, &spec, 0);
|
||||||
if (!devid_out) {
|
if (!devid_out) {
|
||||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't open an audio device for capture: %s!\n", SDL_GetError());
|
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't open an audio device for capture: %s!\n", SDL_GetError());
|
||||||
|
Loading…
Reference in New Issue
Block a user