bring audio functions into cat_api.h

This commit is contained in:
Tobin
2026-04-18 18:04:27 -04:00
parent 5ac77db302
commit bcca621bf2
3 changed files with 30 additions and 39 deletions
+29
View File
@@ -30,6 +30,12 @@ static SDL_Renderer* renderer = NULL;
static SDL_Texture* texture = NULL;
static int screen_width = 0;
static int screen_height = 0;
/* audio */
static unsigned int wav_length;
static unsigned char* wav_buffer;
static SDL_AudioSpec wav_spec;
static SDL_AudioDeviceID device_id = 0;
static int cat_audio_playing = 0;
void cat_pixel(int layer, int visible, int x, int y, unsigned char r, unsigned char g, unsigned char b)
{
@@ -118,6 +124,29 @@ void cat_fill(int layer, int visible, int x, int y, int w, int h, unsigned char
/* TODO: cat bresenham */
/* audio... */
void cat_stop_audio(void) {
SDL_PauseAudioDevice(device_id, 1);
SDL_CloseAudioDevice(device_id);
SDL_FreeWAV(wav_buffer);
cat_audio_playing = 0;
/*SDL_Quit();*/
}
void cat_play_wav(char* file)
{
if (cat_audio_playing) cat_stop_audio();
cat_audio_playing = 1;
if (SDL_LoadWAV(file, &wav_spec, &wav_buffer, &wav_length) == NULL) {
printf("file is null!!\n");
return;
}
device_id = SDL_OpenAudioDevice(NULL, 0, &wav_spec, NULL, 0);
SDL_QueueAudio(device_id, wav_buffer, wav_length);
SDL_PauseAudioDevice(device_id, 0);
}
struct cat_event* cat_get_event(void)
{
struct cat_event* out = malloc(sizeof(struct cat_event));