ailurux
35520ef177
Make media directories case insensitive
4 months ago
jacqueline
96e2fdd4e2
When no media-specific top level directories exist, assume everything is music
4 months ago
ailurux
5e43b42218
Adds audiobook index to available indexes
7 months ago
jacqueline
ea9c7a0498
Include leading slash in media type paths
7 months ago
jacqueline
57af3e64c8
Introduce a MediaType for each track and index
...
Initially set based on filepath, or by genre if the filepath doesn't
match one of our presets
7 months ago
ailurux
4353779810
WIP: Add last_position field to track data and start on implementation
7 months ago
jacqueline
dacf3efc45
Look for music in "/Music", with the root dir as a fallback
8 months ago
jacqueline
2ad83cb210
Shard searching for new tracks across multiple tasks
...
This also has the effect of breaking up the enormous 'updateIndexes'
method into one call per file, which means database updates also no
longer monopolise a single background task for their entire duration.
avg. time per new file is now <140ms for a completely fresh database,
which is pretty good i think!
8 months ago
jacqueline
28cf749951
Make FileGatherer shaped more like a normal iterator
8 months ago
jacqueline
30aaefca64
Batch up the db operations associated with adding new tracks
...
This is ostensibly yet another 'prepare for multithreaded updates'
commit, however it does actually save us another 60(!!) odd milliseconds
per track.
8 months ago
jacqueline
b5dc53670a
Derive the next track id from stored track data, instead of tracking it explicitly
...
This saves about 1ms per new track right now, but more importantly means
that minting a new track id is now a single atomic operation, rather
than being its own database write. This is a useful property that will
come in handy in a few commits time.
8 months ago
jacqueline
f8a3c16aad
Use one MMU page per leveldb write buffer
...
Also drop some of the other tuning changes, since they don't seem to
impact much.
8 months ago
jacqueline
a9d2335e1d
Break FatfsStreamFactory's dep on ServiceLocator
9 months ago
jacqueline
370d1853b5
Break FatfsStreamFactory's dep on ServiceLocator
10 months ago
jacqueline
1242a199e3
log db update time-per-track
11 months ago
jacqueline
72344b5777
no more acquire_spi :)
11 months ago
jacqueline
661cc976a1
Remove now redudantant 'Iterator.next()' care in TrackIterator
...
With Daniel's fix, this is no longer needed! Hooray!
11 months ago
ailurux
9dbcd6a5c8
Fix prev/next behaviour on database iterator
...
Fixes issue with apparent duplicated tracks in the infinite list
11 months ago
jacqueline
26eb580043
move driver includes into a subdir as well
12 months ago
jacqueline
7d7f7755d1
start moving include files into subdirs
12 months ago
jacqueline
1573a8c4cd
WIP merge cyclically dependent components into one big component
12 months ago
jacqueline
1e278d55c4
tweak db performance
...
- leveldb cache pinned to spiram
- actually use it during indexing lol
- all up, saves about 10ms per file (amortised) for an incremental reindex
1 year ago
jacqueline
3dc0989c7f
fix db key prefix format, and use per-file modification times
1 year ago
jacqueline
1455288190
Restore the previous track position when booting
1 year ago
jacqueline
5866513c53
Move the list of unexplored files into spiram
1 year ago
Hailey Somerville
44d848ac66
define database::kCurrentDbVersion publicly
1 year ago
jacqueline
0f03efe868
Make db updates more robust again the sd card disappearing
...
Accidentally found a bug while live on youtube :)
1 year ago
jacqueline
c8bbd4d52c
Reduce leveldb cache sizes and worker stacks, increase number of workers
1 year ago
jacqueline
dad159dc3c
Use a single pool of bg workers instead of separate tasks per use case
...
Also: bump the number of workers tasks up to 3 from 2!
This makes bg db updates + playback work :)
1 year ago
jacqueline
eacea59e8a
Do more to avoid and recover from partial db updates
...
- do not power off in an update is in progress
- explicitly store last update time, rather than deriving it from
unchanged tracks.
1 year ago
jacqueline
04ff8bf492
Extract album artist from libtags-processed files
1 year ago
jacqueline
7cdcd44e0c
Begin migration of remaining screens to Lua
1 year ago
jacqueline
01eb868373
Support more datatypes in track tags
1 year ago
jacqueline
3f7f199cb9
Remove pre-iterator concepts
...
- No more IndexRecord/Result/dbGetPage nonsense
- Queue is just track ids
- i am so tired and have so much to do
1 year ago
jacqueline
009f69c929
Add basic track queue save/load support
...
Not wired up yet; I need to do a bunch of cleanup before i wire it in
1 year ago
jacqueline
4f5422e906
Rewrite the track queue to work directly with database iterators
1 year ago
jacqueline
09c0e1608f
Implement adding to the playback queue from lua
1 year ago
jacqueline
06aca259cb
Add basic lua browser screen
1 year ago
jacqueline
cd46d7bd20
Make lua db iterators async
1 year ago
jacqueline
d70ec9bf44
Add lua functions to get database content
1 year ago
jacqueline
8a0a167adb
Convert the main menu screen to lua lol
1 year ago
jacqueline
499d5a942f
Add a wrapper codec source that does readahead
1 year ago
jacqueline
81855a78f4
Revert "Improve representation of track numbers in indexes"
...
This reverts commit a3da259a37
.
1 year ago
jacqueline
a3da259a37
Improve representation of track numbers in indexes
1 year ago
jacqueline
4cc5fa4c9c
Store the current collator in the database
1 year ago
jacqueline
b58c081508
add locale-aware colation to db indexes
1 year ago
Robin Howard
18d90051c9
Annotates the kTag with maybe_unused; they're only used for logging.
2 years ago
jacqueline
2086ab09b8
Implement incremental updates of database indexes
...
This makes rescanning the library *so* much faster. Yay!
2 years ago
jacqueline
4f8c127da9
Use an mutable struct + const instead of an immutable class
2 years ago
jacqueline
5b5b792467
Skip old tracks when scanning the sd card
2 years ago