diff options
| author | Uneven Prankster <unevenprankster@protonmail.com> | 2023-09-23 19:28:45 -0300 |
|---|---|---|
| committer | Uneven Prankster <unevenprankster@protonmail.com> | 2023-09-23 19:28:45 -0300 |
| commit | a89f892640cf12f75c7ce18e6e88c70a8d3965ed (patch) | |
| tree | e917bda607b86cb7c5bd80df2e5abf549d972163 /src/audio_sys.c | |
| parent | 83505b7be49dbf7789deb814bd159d9c37181d05 (diff) | |
things can always be nicer :D
Diffstat (limited to 'src/audio_sys.c')
| -rw-r--r-- | src/audio_sys.c | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/src/audio_sys.c b/src/audio_sys.c new file mode 100644 index 0000000..f164947 --- /dev/null +++ b/src/audio_sys.c @@ -0,0 +1,108 @@ +#include "config.h" +#include <raylib.h> + +// Defines + +#define MAX_SOUND 8 + +Sound sounds[MAX_SOUND] = {0}; +Music track = {0}; + +// Audio things + +i32 load_audio(const char* path) +{ + i32 idx = -1; + + for(int i = 0; i < MAX_SOUND; ++i){ + if(!IsSoundReady(sounds[i])){ + idx = i; + sounds[i] = LoadSound(path); + break; + } + } + + assert(idx != -1); + return idx; +} + +void play_audio(i32 idx) +{ + assert(idx >= 0 && idx < MAX_SOUND); + PlaySound(sounds[idx]); +} + +void pause_audio(i32 idx) +{ + assert(idx >= 0 && idx < MAX_SOUND); + PauseSound(sounds[idx]); +} + +void resume_audio(i32 idx) +{ + assert(idx >= 0 && idx < MAX_SOUND); + ResumeSound(sounds[idx]); +} + +// Music things // + +void load_music(const char* path) +{ + track = LoadMusicStream(path); +} + +void play_music(void) +{ + PlayMusicStream(track); +} + +void set_music_loop(b32 loop) +{ + track.looping = loop; +} + +void set_music_loop_point(f32 point) +{ + track.loopPoint = point; +} + +void pause_music(void) +{ + PauseMusicStream(track); +} + +void resume_music(void) +{ + ResumeMusicStream(track); +} + +// Main funcs + +void set_main_vol(f32 vol) +{ + assert(vol >= 0.f); + SetMasterVolume(vol); +} + +// Update stuff + +void update_audio(void) +{ + UpdateMusicStream(track); +} + +void unload_active_audio(void) +{ + for(int i = 0; i < MAX_SOUND; ++i){ + if(IsSoundReady(sounds[i])){ + StopSound(sounds[i]); //It is probably a good idea to do this... + UnloadSound(sounds[i]); + } + } +} + +void unload_current_music(void) +{ + StopMusicStream(track); + UnloadMusicStream(track); +}
\ No newline at end of file |
