diff options
| author | Brandon Low <lostlogic@rockbox.org> | 2007-11-03 21:57:27 +0000 |
|---|---|---|
| committer | Brandon Low <lostlogic@rockbox.org> | 2007-11-03 21:57:27 +0000 |
| commit | 7b74dd7574b61493a8b9bf5d52bf78ea81d76262 (patch) | |
| tree | cfd62eb1a9f581403d67a87c8fbdc091419062e7 /apps/buffering.c | |
| parent | 0c97493a88b820bae3df5b24b4eb198816affb32 (diff) | |
| download | rockbox-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.c | 11 |
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; |