From 3be1ca028117344ac0967fbe9379793a891f36eb Mon Sep 17 00:00:00 2001 From: Stepan Moskovchenko Date: Sat, 3 Nov 2007 06:31:33 +0000 Subject: [PATCH] MIDI: Improve seeking (especially near the end of the file) by disabling playback during the seek. Next step is to prevent delta value calculation during seeking, and just recompute the current deltas once seeking is over. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15426 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/midi/midiplay.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c index e1710e8eac..c69c8b1ad6 100644 --- a/apps/plugins/midi/midiplay.c +++ b/apps/plugins/midi/midiplay.c @@ -316,6 +316,7 @@ static int midimain(void * filename) { /* Rewinding is tricky. Basically start the file over */ /* but run through the tracks without the synth running */ + rb->pcm_play_stop(); int desiredTime = playingTime - 5; /* Rewind 5 sec */ @@ -357,6 +358,7 @@ static int midimain(void * filename) while(playingTime < desiredTime) tick(); + rb->pcm_play_data(&get_more, NULL, 0); break; } @@ -370,8 +372,12 @@ static int midimain(void * filename) /* Have the issue where numberOfSamples changes within this tick */ int tickCount = samp / numberOfSamples; int a=0; + + rb->pcm_play_stop(); + for(a=0; apcm_play_data(&get_more, NULL, 0); break; }