diff options
author | kdx <kikoodx@paranoici.org> | 2023-08-30 03:00:48 +0200 |
---|---|---|
committer | kdx <kikoodx@paranoici.org> | 2023-08-30 03:00:48 +0200 |
commit | ac6731996d2137d44d60acf4e41f903081a57512 (patch) | |
tree | a49aa05cb6d1c1a9b61bbb3b4f606b4094d6b672 | |
parent | 4f4e78d8d503a33440fe11b475833bd76a5bf357 (diff) | |
download | tzr-ac6731996d2137d44d60acf4e41f903081a57512.tar.gz |
minimal soloud integration
-rw-r--r-- | _head.c | 4 | ||||
-rw-r--r-- | _head.h | 3 | ||||
-rw-r--r-- | headers/TZR_globals.h | 4 | ||||
-rw-r--r-- | sources/TZR_Init.c | 24 | ||||
-rw-r--r-- | sources/TZR_Quit.c | 5 | ||||
-rw-r--r-- | sources/globals.c | 4 |
6 files changed, 42 insertions, 2 deletions
@@ -5,3 +5,7 @@ #include "stb_image.h" #undef STB_IMAGE_IMPLEMENTATION #endif + +#ifdef TZR_SOLOUD +#include "soloud_c.h" +#endif @@ -7,3 +7,6 @@ extern "C" { #endif +#ifdef TZR_SOLOUD +#include "soloud_c.h" +#endif diff --git a/headers/TZR_globals.h b/headers/TZR_globals.h index a9cec77..3c2758e 100644 --- a/headers/TZR_globals.h +++ b/headers/TZR_globals.h @@ -29,3 +29,7 @@ extern TZR_Joystick *___tzr_joysticks; extern size_t ___tzr_joysticks_capacity; extern size_t ___tzr_joysticks_size; extern SDL_BlendMode ___tzr_blendmode; + +#ifdef TZR_SOLOUD +extern Soloud ___tzr_soloud; +#endif diff --git a/sources/TZR_Init.c b/sources/TZR_Init.c index 4d306a7..c913026 100644 --- a/sources/TZR_Init.c +++ b/sources/TZR_Init.c @@ -90,12 +90,32 @@ _TZR_Init(const TZR_Config *config) ___tzr_mouse_y = ___tzr_config.height / 2; /* Setup audio. */ - if (___tzr_config.mixer) { + do if (___tzr_config.mixer) { if (Mix_OpenAudio(48000, MIX_DEFAULT_FORMAT, 8, 1024) < 0) { sdl_error(0); Mix_Quit(); ___tzr_config.mixer = false; + break; } - } + +#ifdef TZR_SOLOUD + ___tzr_soloud = Soloud_create(); + if (___tzr_soloud == NULL) { + SDL_Log("Soloud_create failed"); + Mix_Quit(); + ___tzr_config.mixer = false; + break; + } + + if (Soloud_init(___tzr_soloud)) { + SDL_Log("Soloud_init failed"); + Soloud_destroy(___tzr_soloud); + ___tzr_soloud = NULL; + Mix_Quit(); + ___tzr_config.mixer = false; + break; + } +#endif + } while (0); return 0; } diff --git a/sources/TZR_Quit.c b/sources/TZR_Quit.c index f98a939..d0d6550 100644 --- a/sources/TZR_Quit.c +++ b/sources/TZR_Quit.c @@ -35,6 +35,11 @@ TZR_Quit(void) ___tzr_window = NULL; } if (___tzr_config.mixer) { +#ifdef TZR_SOLOUD + Soloud_deinit(___tzr_soloud); + Soloud_destroy(___tzr_soloud); + ___tzr_soloud = NULL; +#endif Mix_CloseAudio(); Mix_Quit(); } diff --git a/sources/globals.c b/sources/globals.c index b8b28ab..b683500 100644 --- a/sources/globals.c +++ b/sources/globals.c @@ -29,3 +29,7 @@ TZR_Joystick *___tzr_joysticks = NULL; size_t ___tzr_joysticks_capacity = 0; size_t ___tzr_joysticks_size = 0; SDL_BlendMode ___tzr_blendmode = SDL_BLENDMODE_BLEND; + +#ifdef TZR_SOLOUD +Soloud ___tzr_soloud = NULL; +#endif |