aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkdx <kikoodx@paranoici.org>2023-08-30 03:00:48 +0200
committerkdx <kikoodx@paranoici.org>2023-08-30 03:00:48 +0200
commitac6731996d2137d44d60acf4e41f903081a57512 (patch)
treea49aa05cb6d1c1a9b61bbb3b4f606b4094d6b672
parent4f4e78d8d503a33440fe11b475833bd76a5bf357 (diff)
downloadtzr-ac6731996d2137d44d60acf4e41f903081a57512.tar.gz
minimal soloud integration
-rw-r--r--_head.c4
-rw-r--r--_head.h3
-rw-r--r--headers/TZR_globals.h4
-rw-r--r--sources/TZR_Init.c24
-rw-r--r--sources/TZR_Quit.c5
-rw-r--r--sources/globals.c4
6 files changed, 42 insertions, 2 deletions
diff --git a/_head.c b/_head.c
index 5450be1..0dcbce4 100644
--- a/_head.c
+++ b/_head.c
@@ -5,3 +5,7 @@
#include "stb_image.h"
#undef STB_IMAGE_IMPLEMENTATION
#endif
+
+#ifdef TZR_SOLOUD
+#include "soloud_c.h"
+#endif
diff --git a/_head.h b/_head.h
index 0efaa41..23a8712 100644
--- a/_head.h
+++ b/_head.h
@@ -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