diff options
author | Miika Pekkarinen <miipekk@ihme.org> | 2005-07-01 21:00:02 +0000 |
---|---|---|
committer | Miika Pekkarinen <miipekk@ihme.org> | 2005-07-01 21:00:02 +0000 |
commit | 2724d0bb55298d5a3a66914bfd8d5b449090fc83 (patch) | |
tree | 0f976a6e1172dd460d32e8174bd4738534115a49 | |
parent | c520d69f68b26ab3dc074b923071ff3fca6ef952 (diff) | |
download | rockbox-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.c | 21 |
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 | ||
1416 | void audio_ff_rewind(int newpos) | 1422 | void 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 | ||
1424 | void audio_flush_and_reload_tracks(void) | 1441 | void audio_flush_and_reload_tracks(void) |