#include "config.h" #include // 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); }