summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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,
1261 id3_mutex_lock(); 1261 id3_mutex_lock();
1262 1262
1263 struct mp3entry *id3 = bufgetid3(user_infop->id3_hid); 1263 struct mp3entry *id3 = bufgetid3(user_infop->id3_hid);
1264 struct mp3entry *playing_id3 = id3_get(PLAYING_ID3);
1265 1264
1266 pcm_play_lock(); 1265 pcm_play_lock();
1267 1266
1268 unsigned long e = playing_id3->elapsed; 1267 if (id3)
1269 unsigned long o = playing_id3->offset;
1270
1271 id3_write(PLAYING_ID3, id3);
1272
1273 if (elapsed == (unsigned long)-1)
1274 { 1268 {
1275 playing_id3->elapsed = e; 1269 if (elapsed != (unsigned long)-1)
1276 elapsed = 0; 1270 id3->elapsed = elapsed;
1277 }
1278 1271
1279 if (offset == (unsigned long)-1) 1272 if (offset != (unsigned long)-1)
1280 { 1273 id3->offset = offset;
1281 playing_id3->offset = o;
1282 offset = 0;
1283 } 1274 }
1275 id3_write(PLAYING_ID3, id3);
1284 1276
1285 pcm_play_unlock(); 1277 pcm_play_unlock();
1286 1278
1287 if (id3)
1288 {
1289 id3->elapsed = elapsed;
1290 id3->offset = offset;
1291 }
1292
1293 id3_mutex_unlock(); 1279 id3_mutex_unlock();
1294} 1280}
1295 1281