summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2005-07-01 21:00:02 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2005-07-01 21:00:02 +0000
commit2724d0bb55298d5a3a66914bfd8d5b449090fc83 (patch)
tree0f976a6e1172dd460d32e8174bd4738534115a49
parentc520d69f68b26ab3dc074b923071ff3fca6ef952 (diff)
downloadrockbox-2724d0bb55298d5a3a66914bfd8d5b449090fc83.tar.gz
rockbox-2724d0bb55298d5a3a66914bfd8d5b449090fc83.zip
Pause correctly while seeking.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6975 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/playback.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/apps/playback.c b/apps/playback.c
index c133e46bee..70cb36341b 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -470,6 +470,12 @@ static bool rebuffer_and_seek(int newpos)
470 470
471 mutex_unlock(&mutex_bufferfill); 471 mutex_unlock(&mutex_bufferfill);
472 472
473 while (cur_ti->available == 0 && cur_ti->filerem > 0) {
474 yield();
475 if (ci.stop_codec)
476 return false;
477 }
478
473 return true; 479 return true;
474} 480}
475 481
@@ -1415,10 +1421,21 @@ void audio_prev(void)
1415 1421
1416void audio_ff_rewind(int newpos) 1422void audio_ff_rewind(int newpos)
1417{ 1423{
1424 int counter;
1425
1418 logf("rewind: %d", newpos); 1426 logf("rewind: %d", newpos);
1419 /* Does not work yet. */ 1427 /* Keep playback paused until seek is complete. */
1420 if (playing) 1428 if (playing) {
1421 ci.seek_time = newpos+1; 1429 ci.seek_time = newpos+1;
1430 counter = 30;
1431 pcm_flush_audio();
1432 while (ci.seek_time) {
1433 sleep(10);
1434 if (counter-- == 0)
1435 break ;
1436 }
1437 pcm_play_stop();
1438 }
1422} 1439}
1423 1440
1424void audio_flush_and_reload_tracks(void) 1441void audio_flush_and_reload_tracks(void)