From 30f41c02aec763d32e62351452da9ef582bc3472 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Fri, 6 Mar 2026 13:30:59 -0800 Subject: Move contrib libraries to contrib repo --- contrib/SDL-3.2.8/test/testmultiaudio.c | 201 -------------------------------- 1 file changed, 201 deletions(-) delete mode 100644 contrib/SDL-3.2.8/test/testmultiaudio.c (limited to 'contrib/SDL-3.2.8/test/testmultiaudio.c') diff --git a/contrib/SDL-3.2.8/test/testmultiaudio.c b/contrib/SDL-3.2.8/test/testmultiaudio.c deleted file mode 100644 index 7e1b8dc..0000000 --- a/contrib/SDL-3.2.8/test/testmultiaudio.c +++ /dev/null @@ -1,201 +0,0 @@ -/* - Copyright (C) 1997-2025 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely. -*/ -#include -#include -#include - -#include "testutils.h" - -#ifdef SDL_PLATFORM_EMSCRIPTEN -#include -#endif - -#include /* for fflush() and stdout */ - -static SDL_AudioSpec spec; -static Uint8 *sound = NULL; /* Pointer to wave data */ -static Uint32 soundlen = 0; /* Length of wave data */ - -/* these have to be in globals so the Emscripten port can see them in the mainloop. :/ */ -static SDL_AudioStream *stream = NULL; - - -#ifdef SDL_PLATFORM_EMSCRIPTEN -static void loop(void) -{ - if (SDL_GetAudioStreamAvailable(stream) == 0) { - SDL_Log("done."); - SDL_DestroyAudioStream(stream); - SDL_free(sound); - SDL_Quit(); - emscripten_cancel_main_loop(); - } -} -#endif - -static void -test_multi_audio(const SDL_AudioDeviceID *devices, int devcount) -{ - int keep_going = 1; - SDL_AudioStream **streams = NULL; - int i; - -#ifdef SDL_PLATFORM_ANDROID /* !!! FIXME: maybe always create a window, in the SDLTest layer, so these #ifdefs don't have to be here? */ - SDL_Event event; - - /* Create a Window to get fully initialized event processing for testing pause on Android. */ - SDL_CreateWindow("testmultiaudio", 320, 240, 0); -#endif - - for (i = 0; i < devcount; i++) { - const char *devname = SDL_GetAudioDeviceName(devices[i]); - - SDL_Log("Playing on device #%d of %d: id=%u, name='%s'...", i, devcount, (unsigned int) devices[i], devname); - - if ((stream = SDL_OpenAudioDeviceStream(devices[i], &spec, NULL, NULL)) == NULL) { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Audio stream creation failed: %s", SDL_GetError()); - } else { - SDL_ResumeAudioStreamDevice(stream); - SDL_PutAudioStreamData(stream, sound, soundlen); - SDL_FlushAudioStream(stream); -#ifdef SDL_PLATFORM_EMSCRIPTEN - emscripten_set_main_loop(loop, 0, 1); -#else - while (SDL_GetAudioStreamAvailable(stream) > 0) { -#ifdef SDL_PLATFORM_ANDROID - /* Empty queue, some application events would prevent pause. */ - while (SDL_PollEvent(&event)) { - } -#endif - SDL_Delay(100); - } -#endif - SDL_Log("done."); - SDL_DestroyAudioStream(stream); - } - stream = NULL; - } - - /* note that Emscripten currently doesn't run this part (but maybe only has a single audio device anyhow?) */ - SDL_Log("Playing on all devices..."); - streams = (SDL_AudioStream **) SDL_calloc(devcount, sizeof (SDL_AudioStream *)); - if (!streams) { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Out of memory!"); - } else { - for (i = 0; i < devcount; i++) { - streams[i] = SDL_OpenAudioDeviceStream(devices[i], &spec, NULL, NULL); - if (streams[i] == NULL) { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Audio stream creation failed for device %d of %d: %s", i, devcount, SDL_GetError()); - } else { - SDL_PutAudioStreamData(streams[i], sound, soundlen); - SDL_FlushAudioStream(streams[i]); - } - } - - /* try to start all the devices about the same time. SDL does not guarantee sync across physical devices. */ - for (i = 0; i < devcount; i++) { - if (streams[i]) { - SDL_ResumeAudioStreamDevice(streams[i]); - } - } - - while (keep_going) { - keep_going = 0; - for (i = 0; i < devcount; i++) { - if (streams[i] && (SDL_GetAudioStreamAvailable(streams[i]) > 0)) { - keep_going = 1; - } - } -#ifdef SDL_PLATFORM_ANDROID - /* Empty queue, some application events would prevent pause. */ - while (SDL_PollEvent(&event)) {} -#endif - - SDL_Delay(100); - } - - for (i = 0; i < devcount; i++) { - SDL_DestroyAudioStream(streams[i]); - } - - SDL_free(streams); - } - - SDL_Log("All done!"); -} - -int main(int argc, char **argv) -{ - SDL_AudioDeviceID *devices; - int devcount = 0; - int i; - char *filename = NULL; - SDLTest_CommonState *state; - - /* Initialize test framework */ - state = SDLTest_CommonCreateState(argv, SDL_INIT_AUDIO); - if (!state) { - return 1; - } - - /* Parse commandline */ - for (i = 1; i < argc;) { - int consumed; - - consumed = SDLTest_CommonArg(state, i); - if (!consumed) { - if (!filename) { - filename = argv[i]; - consumed = 1; - } - } - if (consumed <= 0) { - static const char *options[] = { "[sample.wav]", NULL }; - SDLTest_CommonLogUsage(state, argv[0], options); - return 1; - } - - i += consumed; - } - - /* Load the SDL library */ - if (!SDLTest_CommonInit(state)) { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s", SDL_GetError()); - return 1; - } - - SDL_Log("Using audio driver: %s", SDL_GetCurrentAudioDriver()); - - filename = GetResourceFilename(filename, "sample.wav"); - - devices = SDL_GetAudioPlaybackDevices(&devcount); - if (!devices) { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Don't see any specific audio playback devices!"); - } else { - /* Load the wave file into memory */ - if (SDL_LoadWAV(filename, &spec, &sound, &soundlen)) { - test_multi_audio(devices, devcount); - SDL_free(sound); - } else { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't load %s: %s", filename, - SDL_GetError()); - } - SDL_free(devices); - } - - SDL_free(filename); - - SDLTest_CommonQuit(state); - - return 0; -} - -- cgit v1.2.3