unigi.platform.sdl2/sound.c

23 lines
576 B
C
Raw Normal View History

2024-10-16 00:58:16 +00:00
SDL_AudioSpec unigi_platform_audio_spec;
void unigi_platform_audio_callback(void * userdata, uint8_t * stream, int len) {
void (* callback)(uint8_t *, size_t) = userdata;
callback(stream, len);
}
unigi_type_error unigi_sound_init(void (* callback)(uint8_t *, size_t)) {
SDL_AudioSpec desired;
desired.freq = 44100;
desired.channels = 2;
desired.samples = 1024;
desired.callback = unigi_platform_audio_callback;
desired.userdata = callback;
if (SDL_OpenAudio(&desired, &unigi_platform_audio_spec) < 0) {
return 1;
} else {
SDL_PauseAudio(0);
return 0;
}
}