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) { printf("Could not initialize audio: %s\n",SDL_GetError()); return 1; } else { SDL_PauseAudio(0); return 0; } }