Fix preview bug
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user