summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSean Bartell <wingedtachikoma@gmail.com>2011-08-22 01:36:25 -0400
committerNils Wallménius <nils@rockbox.org>2012-05-01 11:28:38 +0200
commit4bef502d4d7fb95f0afb4ac8cb293315d35bb3da (patch)
treef9f9a7fba4a45b86eb779e1d86aef598924290cd /lib
parent9b363c6cedc31f135e831a1b57dcf08578d34ee7 (diff)
downloadrockbox-4bef502d4d7fb95f0afb4ac8cb293315d35bb3da.tar.gz
rockbox-4bef502d4d7fb95f0afb4ac8cb293315d35bb3da.zip
rbcodec refactoring: autoresumable
Moved to playback.c, since it doesn't use metadata from the music file. Change-Id: I5c3ad7750d94b36754f64eb302f96ec163785cb9 Reviewed-on: http://gerrit.rockbox.org/142 Reviewed-by: Nils Wallménius <nils@rockbox.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/rbcodec/metadata/metadata.c65
-rw-r--r--lib/rbcodec/metadata/metadata.h4
2 files changed, 0 insertions, 69 deletions
diff --git a/lib/rbcodec/metadata/metadata.c b/lib/rbcodec/metadata/metadata.c
index 6837e97316..3fe9860441 100644
--- a/lib/rbcodec/metadata/metadata.c
+++ b/lib/rbcodec/metadata/metadata.c
@@ -25,7 +25,6 @@
25 25
26#include "debug.h" 26#include "debug.h"
27#include "logf.h" 27#include "logf.h"
28#include "settings.h"
29#include "cuesheet.h" 28#include "cuesheet.h"
30#include "metadata.h" 29#include "metadata.h"
31 30
@@ -571,67 +570,3 @@ void fill_metadata_from_path(struct mp3entry *id3, const char *trackname)
571 strlcpy(id3->path, trackname, sizeof (id3->path)); 570 strlcpy(id3->path, trackname, sizeof (id3->path));
572} 571}
573#endif /* CONFIG_CODEC == SWCODEC */ 572#endif /* CONFIG_CODEC == SWCODEC */
574
575#ifndef __PCTOOL__
576#ifdef HAVE_TAGCACHE
577#if CONFIG_CODEC == SWCODEC
578
579enum { AUTORESUMABLE_UNKNOWN = 0, AUTORESUMABLE_TRUE, AUTORESUMABLE_FALSE };
580
581bool autoresumable(struct mp3entry *id3)
582{
583 char *endp, *path;
584 size_t len;
585 bool is_resumable;
586
587 if (id3->autoresumable) /* result cached? */
588 return id3->autoresumable == AUTORESUMABLE_TRUE;
589
590 is_resumable = false;
591
592 if (id3->path)
593 {
594 for (path = global_settings.autoresume_paths;
595 *path; /* search terms left? */
596 path++)
597 {
598 if (*path == ':') /* Skip empty search patterns */
599 continue;
600
601 /* FIXME: As soon as strcspn or strchrnul are made available in
602 the core, the following can be made more efficient. */
603 endp = strchr(path, ':');
604 if (endp)
605 len = endp - path;
606 else
607 len = strlen(path);
608
609 /* Note: At this point, len is always > 0 */
610
611 if (strncasecmp(id3->path, path, len) == 0)
612 {
613 /* Full directory-name matches only. Trailing '/' in
614 search path OK. */
615 if (id3->path[len] == '/' || id3->path[len - 1] == '/')
616 {
617 is_resumable = true;
618 break;
619 }
620 }
621 path += len - 1;
622 }
623 }
624
625 /* cache result */
626 id3->autoresumable =
627 is_resumable ? AUTORESUMABLE_TRUE : AUTORESUMABLE_FALSE;
628
629 logf("autoresumable: %s is%s resumable",
630 id3->path, is_resumable ? "" : " not");
631
632 return is_resumable;
633}
634
635#endif /* SWCODEC */
636#endif /* HAVE_TAGCACHE */
637#endif /* __PCTOOL__ */
diff --git a/lib/rbcodec/metadata/metadata.h b/lib/rbcodec/metadata/metadata.h
index 5a1c17bc11..6d711aff28 100644
--- a/lib/rbcodec/metadata/metadata.h
+++ b/lib/rbcodec/metadata/metadata.h
@@ -344,10 +344,6 @@ bool rbcodec_format_is_atomic(int afmt);
344bool format_buffers_with_offset(int afmt); 344bool format_buffers_with_offset(int afmt);
345#endif 345#endif
346 346
347#ifdef HAVE_TAGCACHE
348bool autoresumable(struct mp3entry *id3);
349#endif
350
351#endif 347#endif
352 348
353 349