summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/playback.c9
-rw-r--r--apps/tagtree.c11
-rw-r--r--docs/CREDITS1
3 files changed, 18 insertions, 3 deletions
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