diff --git a/apps/playback.c b/apps/playback.c index e71e06b92c..e33a4ac507 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -2013,6 +2013,15 @@ static void audio_thread(void) LOGFQUEUE("audio < Q_AUDIO_FF_REWIND"); if (!playing) break; + + if ((long)ev.data == 0) + { + /* About to restart the track - send track finish + events if not already done. */ + if (thistrack_id3 == audio_current_track()) + send_event(PLAYBACK_EVENT_TRACK_FINISH, thistrack_id3); + } + if (automatic_skip) { /* An automatic track skip is in progress. Finalize it, diff --git a/apps/tagtree.c b/apps/tagtree.c index fa88a5941b..ecc9f44d4d 100644 --- a/apps/tagtree.c +++ b/apps/tagtree.c @@ -722,10 +722,15 @@ static void tagtree_track_finish_event(void *data) } tagcache_idx--; - /* Don't process unplayed tracks. */ - if (id3->elapsed == 0) + /* Don't process unplayed tracks, or tracks interrupted within the + first 15 seconds. */ + if (id3->elapsed == 0 +#if CONFIG_CODEC == SWCODEC /* HWCODEC doesn't have automatic_skip */ + || (id3->elapsed < 15 * 1000 && !automatic_skip) +#endif + ) { - logf("not logging unplayed track"); + logf("not logging unplayed or skipped track"); return; } diff --git a/docs/CREDITS b/docs/CREDITS index 9bbfc70d9b..88b2948ee6 100644 --- a/docs/CREDITS +++ b/docs/CREDITS @@ -584,6 +584,7 @@ Ante Maretic Benjamin Brown Uwe Wiebach Mikhail Titov +Dave Slusher The libmad team The wavpack team