summaryrefslogtreecommitdiff
path: root/apps/buffering.c
diff options
context:
space:
mode:
authorBrandon Low <lostlogic@rockbox.org>2007-11-05 17:50:51 +0000
committerBrandon Low <lostlogic@rockbox.org>2007-11-05 17:50:51 +0000
commit76f9bfa9455f14d58f559158c1e343dfe7e5e0ac (patch)
tree5899bde2b5b68d5909b0cc2104e52f330e09f354 /apps/buffering.c
parent3379440a4bfecef85c915fb079b595f98a6db1de (diff)
downloadrockbox-76f9bfa9455f14d58f559158c1e343dfe7e5e0ac.tar.gz
rockbox-76f9bfa9455f14d58f559158c1e343dfe7e5e0ac.zip
When seeking foward off of the buffer, if it is a short seek don't rebuffer the whole track, just read enough to satisfy
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15479 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/buffering.c')
-rw-r--r--apps/buffering.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/apps/buffering.c b/apps/buffering.c
index 651ec4c2ff..5a67f25038 100644
--- a/apps/buffering.c
+++ b/apps/buffering.c
@@ -650,6 +650,14 @@ static void rebuffer_handle(int handle_id, size_t newpos)
650 if (!h) 650 if (!h)
651 return; 651 return;
652 652
653 if (newpos > h->offset && newpos - h->offset < BUFFERING_DEFAULT_FILECHUNK)
654 {
655 LOGFQUEUE("buffering >| Q_BUFFER_HANDLE");
656 queue_send(&buffering_queue, Q_BUFFER_HANDLE, handle_id);
657 h->ridx = h->data + newpos;
658 return;
659 }
660
653 h->offset = newpos; 661 h->offset = newpos;
654 662
655 LOGFQUEUE("buffering >| Q_RESET_HANDLE"); 663 LOGFQUEUE("buffering >| Q_RESET_HANDLE");