23 lines
576 B
C
23 lines
576 B
C
|
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;
|
||
|
}
|
||
|
}
|