summaryrefslogtreecommitdiffstats
path: root/apps/playback.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/playback.c')
-rw-r--r--apps/playback.c26
1 files changed, 6 insertions, 20 deletions
diff --git a/apps/playback.c b/apps/playback.c
index 18a3bad5b7..c61fd9d399 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -1261,35 +1261,21 @@ static void playing_id3_sync(struct track_info *user_infop,
id3_mutex_lock();
struct mp3entry *id3 = bufgetid3(user_infop->id3_hid);
- struct mp3entry *playing_id3 = id3_get(PLAYING_ID3);
pcm_play_lock();
- unsigned long e = playing_id3->elapsed;
- unsigned long o = playing_id3->offset;
-
- id3_write(PLAYING_ID3, id3);
-
- if (elapsed == (unsigned long)-1)
+ if (id3)
{
- playing_id3->elapsed = e;
- elapsed = 0;
- }
+ if (elapsed != (unsigned long)-1)
+ id3->elapsed = elapsed;
- if (offset == (unsigned long)-1)
- {
- playing_id3->offset = o;
- offset = 0;
+ if (offset != (unsigned long)-1)
+ id3->offset = offset;
}
+ id3_write(PLAYING_ID3, id3);
pcm_play_unlock();
- if (id3)
- {
- id3->elapsed = elapsed;
- id3->offset = offset;
- }
-
id3_mutex_unlock();
}