mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-12 06:32:34 -05:00
Playback: Move internal track list onto buffer
Does away the statically-allocated track list which frees quite a fair amount of in-RAM size. There's no compile-time hard track limit. Recommended TODO (but not right away): Have data small enough use the handle structure as its buffer data area. Almost the entire handle structure is unused for simple allocations without any associated filesystem path. Change-Id: I74a4561e5a837e049811ac421722ec00dadc0d50
This commit is contained in:
parent
e86ea6bdb9
commit
c1a01beded
4 changed files with 534 additions and 380 deletions
|
|
@ -43,6 +43,8 @@
|
|||
/* #define LOGF_ENABLE */
|
||||
#include "logf.h"
|
||||
|
||||
#define BUF_MAX_HANDLES 384
|
||||
|
||||
/* macros to enable logf for queues
|
||||
logging on SYS_TIMEOUT can be disabled */
|
||||
#ifdef SIMULATOR
|
||||
|
|
@ -1120,6 +1122,10 @@ bool bufclose(int handle_id)
|
|||
return true;
|
||||
}
|
||||
#endif
|
||||
if (handle_id <= 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
LOGFQUEUE("buffering >| Q_CLOSE_HANDLE %d", handle_id);
|
||||
return queue_send(&buffering_queue, Q_CLOSE_HANDLE, handle_id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ enum data_type {
|
|||
TYPE_ATOMIC_AUDIO,
|
||||
TYPE_CUESHEET,
|
||||
TYPE_BITMAP,
|
||||
TYPE_RAW_ATOMIC,
|
||||
};
|
||||
|
||||
/* Error return values */
|
||||
|
|
@ -74,8 +75,6 @@ bool buffering_reset(char *buf, size_t buflen);
|
|||
* NOTE: Tail operations are only legal when the end of the file is buffered.
|
||||
****************************************************************************/
|
||||
|
||||
#define BUF_MAX_HANDLES 256
|
||||
|
||||
int bufopen(const char *file, size_t offset, enum data_type type,
|
||||
void *user_data);
|
||||
int bufalloc(const void *src, size_t size, enum data_type type);
|
||||
|
|
|
|||
900
apps/playback.c
900
apps/playback.c
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue