diff options
author | Christian Soffke <christian.soffke@gmail.com> | 2023-10-15 17:30:27 +0200 |
---|---|---|
committer | Christian Soffke <christian.soffke@gmail.com> | 2023-10-17 12:18:33 -0400 |
commit | e3b22935f233a2b95c1b14230bd669b8dd64a330 (patch) | |
tree | 5b8b6dee8416a56e6f483c1e6c8d477d525152fe /apps/plugins | |
parent | f2af0711b01a5aa66a0533504bb88e142c67ef80 (diff) | |
download | rockbox-e3b22935f233a2b95c1b14230bd669b8dd64a330.tar.gz rockbox-e3b22935f233a2b95c1b14230bd669b8dd64a330.zip |
Properties/Tagcache Track Info Retrieval: Skip files with errors
File names exceeding the max length will not be retrievable
from the database. Skip such files, instead of cancelling
the operation at that point.
Change-Id: Ia6bc8a53be9ec181eb836956cc3d8b059b2d024f
Diffstat (limited to 'apps/plugins')
-rw-r--r-- | apps/plugins/properties.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/apps/plugins/properties.c b/apps/plugins/properties.c index 53af4c5bab..ef9dc4c7f7 100644 --- a/apps/plugins/properties.c +++ b/apps/plugins/properties.c | |||
@@ -48,6 +48,7 @@ static int props_type = PROPS_FILE; | |||
48 | static struct mp3entry id3; | 48 | static struct mp3entry id3; |
49 | #ifdef HAVE_TAGCACHE | 49 | #ifdef HAVE_TAGCACHE |
50 | static int mul_id3_count; | 50 | static int mul_id3_count; |
51 | static int skipped_count; | ||
51 | #endif | 52 | #endif |
52 | 53 | ||
53 | static char str_filename[MAX_PATH]; | 54 | static char str_filename[MAX_PATH]; |
@@ -374,11 +375,15 @@ static bool determine_file_or_dir(void) | |||
374 | #ifdef HAVE_TAGCACHE | 375 | #ifdef HAVE_TAGCACHE |
375 | bool mul_id3_add(const char *file_name) | 376 | bool mul_id3_add(const char *file_name) |
376 | { | 377 | { |
377 | if (rb->mp3info(&id3, file_name)) | 378 | if (!file_name) |
379 | skipped_count++; | ||
380 | else if (rb->mp3info(&id3, file_name)) | ||
378 | return false; | 381 | return false; |
379 | 382 | else | |
380 | collect_id3(&id3, mul_id3_count == 0); | 383 | { |
381 | mul_id3_count++; | 384 | collect_id3(&id3, mul_id3_count == 0); |
385 | mul_id3_count++; | ||
386 | } | ||
382 | 387 | ||
383 | return true; | 388 | return true; |
384 | } | 389 | } |
@@ -406,12 +411,15 @@ enum plugin_status plugin_start(const void* parameter) | |||
406 | if (!rb->strcmp(file, MAKE_ACT_STR(ACTIVITY_DATABASEBROWSER))) /* db table selected */ | 411 | if (!rb->strcmp(file, MAKE_ACT_STR(ACTIVITY_DATABASEBROWSER))) /* db table selected */ |
407 | { | 412 | { |
408 | props_type = PROPS_MUL_ID3; | 413 | props_type = PROPS_MUL_ID3; |
409 | mul_id3_count = 0; | 414 | mul_id3_count = skipped_count = 0; |
410 | 415 | ||
411 | if (!rb->tagtree_subentries_do_action(&mul_id3_add) || mul_id3_count == 0) | 416 | if (!rb->tagtree_subentries_do_action(&mul_id3_add) || mul_id3_count == 0) |
412 | return PLUGIN_ERROR; | 417 | return PLUGIN_ERROR; |
413 | else if (mul_id3_count > 1) /* otherwise, the retrieved id3 can be used as-is */ | 418 | else if (mul_id3_count > 1) /* otherwise, the retrieved id3 can be used as-is */ |
414 | finalize_id3(&id3); | 419 | finalize_id3(&id3); |
420 | |||
421 | if (skipped_count > 0) | ||
422 | rb->splashf(HZ*2, "Skipped %d", skipped_count); | ||
415 | } | 423 | } |
416 | else | 424 | else |
417 | #endif | 425 | #endif |