mirror of
				https://github.com/libsdl-org/SDL.git
				synced 2025-10-26 12:27:44 +00:00 
			
		
		
		
	Only initialize audio drivers that have been requested
If testautomation is running with only a specific audio driver enabled, we shouldn't try to open other ones, as they might fail.
Fixes https://github.com/libsdl-org/SDL/issues/8797
(cherry picked from commit 4c11307a4e)
			
			
This commit is contained in:
		| @@ -87,6 +87,7 @@ static int audio_initQuitAudio(void *arg) | ||||
|     int result; | ||||
|     int i, iMax; | ||||
|     const char *audioDriver; | ||||
|     const char *hint = SDL_GetHint(SDL_HINT_AUDIO_DRIVER); | ||||
|  | ||||
|     /* Stop SDL audio subsystem */ | ||||
|     SDL_QuitSubSystem(SDL_INIT_AUDIO); | ||||
| @@ -102,6 +103,10 @@ static int audio_initQuitAudio(void *arg) | ||||
|         SDLTest_Assert(audioDriver != NULL, "Audio driver name is not NULL"); | ||||
|         SDLTest_AssertCheck(audioDriver[0] != '\0', "Audio driver name is not empty; got: %s", audioDriver); /* NOLINT(clang-analyzer-core.NullDereference): Checked for NULL above */ | ||||
|  | ||||
|         if (hint && SDL_strcmp(audioDriver, hint) != 0) { | ||||
|             continue; | ||||
|         } | ||||
|  | ||||
|         /* Call Init */ | ||||
|         SDL_SetHint("SDL_AUDIO_DRIVER", audioDriver); | ||||
|         result = SDL_InitSubSystem(SDL_INIT_AUDIO); | ||||
| @@ -146,6 +151,7 @@ static int audio_initOpenCloseQuitAudio(void *arg) | ||||
|     int i, iMax, j, k; | ||||
|     const char *audioDriver; | ||||
|     SDL_AudioSpec desired; | ||||
|     const char *hint = SDL_GetHint(SDL_HINT_AUDIO_DRIVER); | ||||
|  | ||||
|     /* Stop SDL audio subsystem */ | ||||
|     SDL_QuitSubSystem(SDL_INIT_AUDIO); | ||||
| @@ -161,6 +167,10 @@ static int audio_initOpenCloseQuitAudio(void *arg) | ||||
|         SDLTest_Assert(audioDriver != NULL, "Audio driver name is not NULL"); | ||||
|         SDLTest_AssertCheck(audioDriver[0] != '\0', "Audio driver name is not empty; got: %s", audioDriver); /* NOLINT(clang-analyzer-core.NullDereference): Checked for NULL above */ | ||||
|  | ||||
|         if (hint && SDL_strcmp(audioDriver, hint) != 0) { | ||||
|             continue; | ||||
|         } | ||||
|  | ||||
|         /* Change specs */ | ||||
|         for (j = 0; j < 2; j++) { | ||||
|  | ||||
| @@ -231,6 +241,7 @@ static int audio_pauseUnpauseAudio(void *arg) | ||||
|     int result; | ||||
|     const char *audioDriver; | ||||
|     SDL_AudioSpec desired; | ||||
|     const char *hint = SDL_GetHint(SDL_HINT_AUDIO_DRIVER); | ||||
|  | ||||
|     /* Stop SDL audio subsystem */ | ||||
|     SDL_QuitSubSystem(SDL_INIT_AUDIO); | ||||
| @@ -246,6 +257,10 @@ static int audio_pauseUnpauseAudio(void *arg) | ||||
|         SDLTest_Assert(audioDriver != NULL, "Audio driver name is not NULL"); | ||||
|         SDLTest_AssertCheck(audioDriver[0] != '\0', "Audio driver name is not empty; got: %s", audioDriver); /* NOLINT(clang-analyzer-core.NullDereference): Checked for NULL above */ | ||||
|  | ||||
|         if (hint && SDL_strcmp(audioDriver, hint) != 0) { | ||||
|             continue; | ||||
|         } | ||||
|  | ||||
|         /* Change specs */ | ||||
|         for (j = 0; j < 2; j++) { | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Sam Lantinga
					Sam Lantinga