diff --git a/source/camera.c b/source/camera.c index f6fb9ba..ea4b78c 100644 --- a/source/camera.c +++ b/source/camera.c @@ -198,6 +198,7 @@ void update_qr(qr_data *data) if (!quirc_decode(&code, &scan_data)) { exit_qr(data); + data->finished_update = true; draw_install(INSTALL_DOWNLOAD); char * zip_buf = NULL; @@ -276,7 +277,6 @@ void update_qr(qr_data *data) free(filename); free(zip_buf); - data->finished_update = true; } } @@ -297,5 +297,4 @@ bool init_qr(void) while (!data->finished_update && !data->finished) update_qr(data); return (bool)data->success; -} - +} \ No newline at end of file diff --git a/source/music.c b/source/music.c index 278008a..07eb114 100644 --- a/source/music.c +++ b/source/music.c @@ -76,6 +76,7 @@ void thread_audio(void* data) { ov_clear(&audio->vf); linearFree(audio->wave_buf[0].data_vaddr); linearFree(audio->wave_buf[1].data_vaddr); + while (audio->wave_buf[0].status != NDSP_WBUF_DONE || audio->wave_buf[1].status != NDSP_WBUF_DONE) svcSleepThread(1e7); svcSignalEvent(audio->finished); free(audio); }