Fix preview bug

This commit is contained in:
2018-05-10 15:43:07 -04:00
parent 7beb9b72db
commit cb6f90adc7
3 changed files with 19 additions and 1 deletions

View File

@@ -136,6 +136,11 @@ void free_lists(void)
void exit_function(bool power_pressed)
{
if (audio)
{
audio->stop = true;
svcWaitSynchronization(audio->finished, U64_MAX);
}
free_lists();
svcCloseHandle(update_icons_handle);
exit_screens();
@@ -461,7 +466,11 @@ int main(void)
{
preview_mode = false;
if(current_mode == MODE_THEMES && audio)
{
audio->stop = true;
svcWaitSynchronization(audio->finished, U64_MAX);
audio = NULL;
}
}
continue;
}
@@ -469,7 +478,11 @@ int main(void)
{
preview_mode = false;
if(current_mode == MODE_THEMES && audio)
{
audio->stop = true;
svcWaitSynchronization(audio->finished, U64_MAX);
audio = NULL;
}
continue;
}
}

View File

@@ -30,6 +30,8 @@
// Play a given audio struct
Result update_audio(audio_s *audio)
{
svcCreateEvent(&audio->finished, RESET_STICKY);
long size = audio->wave_buf[audio->buf_pos].nsamples * 4 - audio->data_read;
char size_info[50] = {0};
sprintf(size_info, "Audio Size: %ld\n", size);
@@ -70,6 +72,7 @@ void thread_audio(void* data) {
while(!audio->stop) {
update_audio(audio);
}
svcSignalEvent(audio->finished);
free(audio->filebuf);
free(audio);
}