diff options
Diffstat (limited to 'apps/tagtree.c')
-rw-r--r-- | apps/tagtree.c | 20 |
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 | } |