summaryrefslogtreecommitdiff
path: root/apps/buffering.c
diff options
context:
space:
mode:
authorBrandon Low <lostlogic@rockbox.org>2007-11-03 21:57:27 +0000
committerBrandon Low <lostlogic@rockbox.org>2007-11-03 21:57:27 +0000
commit7b74dd7574b61493a8b9bf5d52bf78ea81d76262 (patch)
treecfd62eb1a9f581403d67a87c8fbdc091419062e7 /apps/buffering.c
parent0c97493a88b820bae3df5b24b4eb198816affb32 (diff)
downloadrockbox-7b74dd7574b61493a8b9bf5d52bf78ea81d76262.zip
rockbox-7b74dd7574b61493a8b9bf5d52bf78ea81d76262.tar.gz
rockbox-7b74dd7574b61493a8b9bf5d52bf78ea81d76262.tar.bz2
rockbox-7b74dd7574b61493a8b9bf5d52bf78ea81d76262.tar.xz
Attempt to fix FS#8077... again
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15441 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/buffering.c')
-rw-r--r--apps/buffering.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/apps/buffering.c b/apps/buffering.c
index b92b5d1..77eaba8 100644
--- a/apps/buffering.c
+++ b/apps/buffering.c
@@ -550,11 +550,11 @@ static bool buffer_handle(int handle_id)
logf("buffer_handle(%d)", handle_id);
struct memory_handle *h = find_handle(handle_id);
if (!h)
- return -1;
+ return true;
if (h->filerem == 0) {
/* nothing left to buffer */
- return false;
+ return true;
}
if (h->fd < 0) /* file closed, reopen */
@@ -562,10 +562,10 @@ static bool buffer_handle(int handle_id)
if (*h->path)
h->fd = open(h->path, O_RDONLY);
else
- return false;
+ return true;
if (h->fd < 0)
- return false;
+ return true;
if (h->offset)
lseek(h->fd, h->offset, SEEK_SET);
@@ -1189,6 +1189,9 @@ void buffering_thread(void)
case Q_BUFFER_HANDLE:
LOGFQUEUE("buffering < Q_BUFFER_HANDLE");
queue_reply(&buffering_queue, 1);
+ /* Call buffer callbacks here because this is one of two ways
+ * to begin a full buffer fill */
+ call_buffer_low_callbacks();
filling |= buffer_handle((int)ev.data);
break;