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:
Michael Sevakis 2017-12-08 13:01:25 -05:00
parent e86ea6bdb9
commit c1a01beded
4 changed files with 534 additions and 380 deletions

View file

@ -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);
}