From fe690dfa202caae6e2840732c1995fed09a7bb17 Mon Sep 17 00:00:00 2001 From: Christian Soffke Date: Sun, 21 Dec 2025 11:34:31 +0100 Subject: [PATCH] plugins: playing time: adjust error message, keep theme enabled Replace generic error message with voiced info about the number of tracks skipped Change-Id: I334fac447eeef2eb5c0d302675b98027b01b09d0 --- apps/lang/english.lang | 14 -------------- apps/plugin.c | 1 + apps/plugins/playing_time.c | 17 ++++++++++++++++- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/apps/lang/english.lang b/apps/lang/english.lang index d5222de4b7..27faa38cf8 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -12754,20 +12754,6 @@ *: "Average bit rate" - - id: LANG_PLAYTIME_ERROR - desc: playing time screen - user: core - - *: "Error while gathering info" - - - *: "Error while gathering info" - - - *: "Error while gathering info" - - id: LANG_PLAYING_TIME desc: onplay menu diff --git a/apps/plugin.c b/apps/plugin.c index c35491f788..972fd2568d 100644 --- a/apps/plugin.c +++ b/apps/plugin.c @@ -886,6 +886,7 @@ int plugin_load(const char* plugin, const void* parameter) /* for some plugins, the SBS can be left enabled */ const char *sepch = strrchr(plugin, PATH_SEPCH); bool theme_enabled = sepch && (!strcmp("properties.rock", sepch + 1) || + !strcmp("playing_time.rock", sepch + 1) || !strcmp("main_menu_config.rock", sepch + 1) || !strcmp("disktidy.rock", sepch + 1)); diff --git a/apps/plugins/playing_time.c b/apps/plugins/playing_time.c index ae4d97555c..6a63c3dd8d 100644 --- a/apps/plugins/playing_time.c +++ b/apps/plugins/playing_time.c @@ -55,6 +55,7 @@ enum ePT_SUM { struct playing_time_info { char single_mode_tag[MAX_PATH]; /* Relevant tag when single mode enabled */ + char error_str[16]; /* Error message to display to user */ unsigned long long size[ePT_COUNT]; /* File size of tracks */ unsigned long long length[ePT_COUNT]; /* Length of tracks */ unsigned long curr_track_length[ePT_COUNT]; /* Current track length */ @@ -529,7 +530,19 @@ static bool playing_time(void) if (!success) return false; if (pti.error_count > 0) - rb->splash(HZ, ID2P(LANG_PLAYTIME_ERROR)); + { + rb->snprintf(pti.error_str, sizeof pti.error_str, + "%d %s", pti.error_count, rb->str(LANG_TRACKS)); + if (rb->global_settings->talk_menu) + { + rb->talk_id(LANG_ERROR_FORMATSTR, false); + rb->talk_number(pti.error_count, true); + rb->talk_id(LANG_TRACKS, true); + rb->talk_force_enqueue_next(); + } + /* (voiced above) */ + rb->splashf(HZ, rb->str(LANG_ERROR_FORMATSTR), pti.error_str); + } pt_store_converted_totals(&pti); return pt_display_stats(&pti); @@ -547,6 +560,8 @@ enum plugin_status plugin_start(const void* parameter) return status; } + /* Only relevant if launched using hotkey from the + WPS. Otherwise theme should be enabled already. */ FOR_NB_SCREENS(i) rb->viewportmanager_theme_enable(i, true, NULL);