diff options
Diffstat (limited to 'sources')
-rw-r--r-- | sources/TZR_PlayMusic.c | 19 | ||||
-rw-r--r-- | sources/TZR_StopMusic.c | 14 | ||||
-rw-r--r-- | sources/globals.c | 1 |
3 files changed, 34 insertions, 0 deletions
diff --git a/sources/TZR_PlayMusic.c b/sources/TZR_PlayMusic.c new file mode 100644 index 0000000..10725b6 --- /dev/null +++ b/sources/TZR_PlayMusic.c @@ -0,0 +1,19 @@ +#include "TZR_sound.h" +#include "TZR_globals.h" +#include "sdl_error.h" + +int +TZR_PlayMusic(const char *path, int loop) +{ + if (!___tzr_config.mixer) { + fprintf(stderr, "mixer is disabled\n"); + return -1; + } + TZR_StopMusic(); + ___tzr_music = Mix_LoadMUS(path); + if (___tzr_music == NULL) + return sdl_error(-1); + if (Mix_PlayMusic(___tzr_music, loop) < 0) + return sdl_error(-1); + return 0; +} diff --git a/sources/TZR_StopMusic.c b/sources/TZR_StopMusic.c new file mode 100644 index 0000000..94eda2f --- /dev/null +++ b/sources/TZR_StopMusic.c @@ -0,0 +1,14 @@ +#include "TZR_sound.h" +#include "TZR_globals.h" + +void +TZR_StopMusic(void) +{ + if (!___tzr_config.mixer) + return; + if (Mix_PlayingMusic()) + Mix_HaltMusic(); + if (___tzr_music != NULL) + Mix_FreeMusic(___tzr_music); + ___tzr_music = NULL; +} diff --git a/sources/globals.c b/sources/globals.c index c968caf..02f9181 100644 --- a/sources/globals.c +++ b/sources/globals.c @@ -23,3 +23,4 @@ TZR_KeyState ___tzr_mousestates[256] = {0}; //doc says than mouse button is u8 float ___tzr_scale = 1.0; int ___tzr_off_x = 1.0; int ___tzr_off_y = 1.0; +Mix_Music *___tzr_music = NULL; |