summaryrefslogtreecommitdiff
path: root/apps/tagtree.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/tagtree.c')
-rw-r--r--apps/tagtree.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/apps/tagtree.c b/apps/tagtree.c
index 9eef38b5e6..ff364ec5e4 100644
--- a/apps/tagtree.c
+++ b/apps/tagtree.c
@@ -330,6 +330,7 @@ static int get_tag(int *tag)
330 {"playcount", tag_playcount}, 330 {"playcount", tag_playcount},
331 {"rating", tag_rating}, 331 {"rating", tag_rating},
332 {"lastplayed", tag_lastplayed}, 332 {"lastplayed", tag_lastplayed},
333 {"lastelapsed", tag_lastelapsed},
333 {"lastoffset", tag_lastoffset}, 334 {"lastoffset", tag_lastoffset},
334 {"commitid", tag_commitid}, 335 {"commitid", tag_commitid},
335 {"entryage", tag_virt_entryage}, 336 {"entryage", tag_virt_entryage},
@@ -841,8 +842,16 @@ static void tagtree_buffer_event(void *data)
841 #if CONFIG_CODEC == SWCODEC 842 #if CONFIG_CODEC == SWCODEC
842 if (autoresume) 843 if (autoresume)
843 { 844 {
844 /* Load current file resume offset if not already defined (by 845 /* Load current file resume info if not already defined (by
845 another resume mechanism) */ 846 another resume mechanism) */
847 if (id3->elapsed == 0)
848 {
849 id3->elapsed = tagcache_get_numeric(&tcs, tag_lastelapsed);
850
851 logf("tagtree_buffer_event: Set elapsed for %s to %lX\n",
852 str_or_empty(id3->title), id3->elapsed);
853 }
854
846 if (id3->offset == 0) 855 if (id3->offset == 0)
847 { 856 {
848 id3->offset = tagcache_get_numeric(&tcs, tag_lastoffset); 857 id3->offset = tagcache_get_numeric(&tcs, tag_lastoffset);
@@ -940,12 +949,13 @@ static void tagtree_track_finish_event(void *data)
940#if CONFIG_CODEC == SWCODEC 949#if CONFIG_CODEC == SWCODEC
941 if (autoresume) 950 if (autoresume)
942 { 951 {
952 unsigned long elapsed = auto_skip ? 0 : id3->elapsed;
943 unsigned long offset = auto_skip ? 0 : id3->offset; 953 unsigned long offset = auto_skip ? 0 : id3->offset;
944 954 tagcache_update_numeric(tagcache_idx, tag_lastelapsed, elapsed);
945 tagcache_update_numeric(tagcache_idx, tag_lastoffset, offset); 955 tagcache_update_numeric(tagcache_idx, tag_lastoffset, offset);
946 956
947 logf("tagtree_track_finish_event: Save offset for %s: %lX", 957 logf("tagtree_track_finish_event: Save resume for %s: %lX %lX",
948 str_or_empty(id3->title), offset); 958 str_or_empty(id3->title), elapsed, offset);
949 } 959 }
950#endif 960#endif
951} 961}
@@ -2034,7 +2044,7 @@ static int tagtree_play_folder(struct tree_context* c)
2034 c->selected_item = 0; 2044 c->selected_item = 0;
2035 gui_synclist_select_item(&tree_lists, c->selected_item); 2045 gui_synclist_select_item(&tree_lists, c->selected_item);
2036 2046
2037 playlist_start(c->selected_item,0); 2047 playlist_start(c->selected_item, 0, 0);
2038 playlist_get_current()->num_inserted_tracks = 0; /* make warn on playlist erase work */ 2048 playlist_get_current()->num_inserted_tracks = 0; /* make warn on playlist erase work */
2039 return 0; 2049 return 0;
2040} 2050}