[prev in list] [next in list] [prev in thread] [next in thread] 

List:       rockbox-cvs
Subject:    [Feature] lastfm_scrobbler don't return to plugin on WPS resume failure
From:       rockbox-gerrit-noreply--- via rockbox-cvs <rockbox-cvs () lists ! haxx ! se>
Date:       2023-10-11 11:12:58
Message-ID: 202310111112.39BBCw1a2483369 () archos ! rockbox ! org
[Download RAW message or body]

commit 3c89adbdbdd036baf313786b0694632c8e7e2bb3
Author: William Wilgus <wilgus.william@gmail.com>
Date:   Wed Oct 11 07:09:47 2023 -0400

    [Feature] lastfm_scrobbler don't return to plugin on WPS resume failure
    
    if resume playback on start was set and there was nothing to
    resume the menu was entered
    
    Change-Id: Iab5f48e94f3de68091cf42781d6e3ab4575c1a84

diff --git a/apps/plugins/lastfm_scrobbler.c b/apps/plugins/lastfm_scrobbler.c
index ca6f9aa8f5..2c0597656c 100644
--- a/apps/plugins/lastfm_scrobbler.c
+++ b/apps/plugins/lastfm_scrobbler.c
@@ -136,6 +136,7 @@ void play_tone(unsigned int frequency, unsigned int duration);
 static struct
 {
     bool exiting; /* signal to the thread that we want to exit */
+    bool hide_reentry; /* we may return on WPS fail, hide next invocation */
     unsigned int id; /* worker thread id */
     struct event_queue queue; /* thread event queue */
     struct queue_sender_list queue_send;
@@ -841,6 +842,13 @@ static int plugin_exit_tsr(bool reenter)
                          "Quit scrobbler?" }, 3
     };
 
+    if (gThread.hide_reentry &&
+       (rb->audio_status() & (AUDIO_STATUS_PLAY | AUDIO_STATUS_PAUSE)) == 0)
+    {
+        gThread.hide_reentry = false;
+        return PLUGIN_TSR_CONTINUE;
+    }
+
     while(true)
     {
         int result = reenter ? rb->do_menu(&menu, NULL, NULL, false) : 2;
@@ -897,8 +905,10 @@ static int plugin_main(const void* parameter)
     rb->memcpy(&gConfig, &cfg, sizeof(struct scrobbler_cfg)); /*restore settings */
 
     if (gConfig.playback)
+    {
+        gThread.hide_reentry = true;
         return PLUGIN_GOTO_WPS;
-
+    }
     return PLUGIN_OK;
 }
 
-- 
rockbox-cvs mailing list
rockbox-cvs@lists.haxx.se
https://lists.haxx.se/mailman/listinfo/rockbox-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic