128 lines
2.9 KiB
C
128 lines
2.9 KiB
C
#include "include.h"
|
|
|
|
#include "audio.h"
|
|
|
|
// sfx
|
|
Mix_Chunk *bongo;
|
|
Mix_Chunk *cat_sound;
|
|
Mix_Chunk *cho;
|
|
Mix_Chunk *clap;
|
|
Mix_Chunk *cough_cough;
|
|
Mix_Chunk *game_start;
|
|
Mix_Chunk *inhale;
|
|
Mix_Chunk *reverse;
|
|
Mix_Chunk *ronf;
|
|
Mix_Chunk *rumble;
|
|
Mix_Chunk *sneeze_long;
|
|
Mix_Chunk *sneeze_short;
|
|
|
|
// bgm
|
|
Mix_Chunk *game_over;
|
|
Mix_Chunk *in_game;
|
|
|
|
int bgm_channel = 0;
|
|
|
|
void load_audio(void) {
|
|
|
|
bongo = Mix_LoadWAV("assets/sfx/bongo");
|
|
cat_sound = Mix_LoadWAV("assets/sfx/cat_sound");
|
|
cho = Mix_LoadWAV("assets/sfx/cho");
|
|
clap = Mix_LoadWAV("assets/sfx/clap");
|
|
cough_cough = Mix_LoadWAV("assets/sfx/cough_cough");
|
|
game_start = Mix_LoadWAV("assets/sfx/game_start");
|
|
inhale = Mix_LoadWAV("assets/sfx/inhale");
|
|
reverse = Mix_LoadWAV("assets/sfx/reverse");
|
|
ronf = Mix_LoadWAV("assets/sfx/ronf");
|
|
rumble = Mix_LoadWAV("assets/sfx/rumble");
|
|
sneeze_long = Mix_LoadWAV("assets/sfx/sneeze_long");
|
|
sneeze_short = Mix_LoadWAV("assets/sfx/sneeze_short");
|
|
|
|
game_over = Mix_LoadWAV("assets/bgm/game_over");
|
|
in_game = Mix_LoadWAV("assets/bgm/in_game");
|
|
|
|
}
|
|
|
|
void unload_audio(void) {
|
|
|
|
Mix_FreeChunk(bongo);
|
|
Mix_FreeChunk(cat_sound);
|
|
Mix_FreeChunk(cho);
|
|
Mix_FreeChunk(clap);
|
|
Mix_FreeChunk(cough_cough);
|
|
Mix_FreeChunk(game_start);
|
|
Mix_FreeChunk(inhale);
|
|
Mix_FreeChunk(reverse);
|
|
Mix_FreeChunk(ronf);
|
|
Mix_FreeChunk(rumble);
|
|
Mix_FreeChunk(sneeze_long);
|
|
Mix_FreeChunk(sneeze_short);
|
|
|
|
Mix_FreeChunk(game_over);
|
|
Mix_FreeChunk(in_game);
|
|
|
|
}
|
|
|
|
int play_sound_internal(char *name, int loop) {
|
|
|
|
Mix_Chunk *sound;
|
|
|
|
if(!strcmp(name, "bongo")) {
|
|
sound = bongo;
|
|
} else if (!strcmp(name, "cat_sound")) {
|
|
sound = cat_sound;
|
|
} else if (!strcmp(name, "cho")) {
|
|
sound = cho;
|
|
} else if (!strcmp(name, "clap")) {
|
|
sound = clap;
|
|
} else if (!strcmp(name, "cough_cough")) {
|
|
sound = cough_cough;
|
|
} else if (!strcmp(name, "game_start")) {
|
|
sound = game_start;
|
|
} else if (!strcmp(name, "inhale")) {
|
|
sound = inhale;
|
|
} else if (!strcmp(name, "reverse")) {
|
|
sound = reverse;
|
|
} else if (!strcmp(name, "ronf")) {
|
|
sound = ronf;
|
|
} else if (!strcmp(name, "rumble")) {
|
|
sound = rumble;
|
|
} else if (!strcmp(name, "sneeze_long")) {
|
|
sound = sneeze_long;
|
|
} else if (!strcmp(name, "sneeze_short")) {
|
|
sound = sneeze_short;
|
|
} else if (!strcmp(name, "game_over")) {
|
|
sound = game_over;
|
|
} else if (!strcmp(name, "in_game")) {
|
|
sound = in_game;
|
|
}
|
|
|
|
return Mix_PlayChannel(-1, sound, loop);
|
|
|
|
}
|
|
|
|
void play_sound(char *name) {
|
|
play_sound_internal(name, 0);
|
|
}
|
|
|
|
void play_sound_and_wait(char *name) {
|
|
int chan = play_sound_internal(name, 0);
|
|
int playing = Mix_Playing(chan);
|
|
while(playing) { // wait for sound to end
|
|
SDL_Delay(50);
|
|
playing = Mix_Playing(chan);
|
|
}
|
|
SDL_Delay(500);
|
|
}
|
|
|
|
void play_bgm(char *name) {
|
|
bgm_channel = play_sound_internal(name, -1);
|
|
}
|
|
void pause_bgm(void) {
|
|
Mix_Pause(bgm_channel);
|
|
}
|
|
void resume_bgm(void) {
|
|
Mix_Resume(bgm_channel);
|
|
}
|
|
void stop_bgm(void) {
|
|
Mix_HaltChannel(bgm_channel);
|
|
} |