summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2006-08-03 07:29:19 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2006-08-03 07:29:19 +0000
commitab279dd6bfbe8650463c4116133ffe04ccb2d3f1 (patch)
treeeff82eb037a29ea171200ffae28757b4bc14e500 /apps
parentce23f3d9215ebbd12d2f9847cd13b36b61ca3ee6 (diff)
downloadrockbox-ab279dd6bfbe8650463c4116133ffe04ccb2d3f1.zip
rockbox-ab279dd6bfbe8650463c4116133ffe04ccb2d3f1.tar.gz
rockbox-ab279dd6bfbe8650463c4116133ffe04ccb2d3f1.tar.bz2
rockbox-ab279dd6bfbe8650463c4116133ffe04ccb2d3f1.tar.xz
Stop playback before updating runtime stats. And yield codecs while
storing the stats to db to prevent skipping. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10427 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/playback.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/apps/playback.c b/apps/playback.c
index 9a7c9e2..f23c812 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -1917,8 +1917,11 @@ static void audio_clear_track_entries(
/* If there is an unbuffer callback, call it, otherwise,
* just clear the track */
if (track_unbuffer_callback)
+ {
+ yield_codecs();
track_unbuffer_callback(&tracks[last_idx].id3, false);
-
+ }
+
memset(&tracks[last_idx], 0, sizeof(struct track_info));
}
last_idx = cur_idx;
@@ -1982,6 +1985,7 @@ static void audio_stop_playback(void)
}
/* Mark all entries null. */
+ audio_clear_track_entries(true, false);
memset(tracks, 0, sizeof(struct track_info) * MAX_TRACK);
}
@@ -2335,7 +2339,6 @@ void audio_thread(void)
case Q_AUDIO_STOP:
logf("audio_stop");
- audio_clear_track_entries(true, false);
audio_stop_playback();
break ;