Commit Graph
988 Commits
Author SHA1 Message Date
jacqueline 3421bd652c When clicking a track in the file browser, play it
Includes adding a `playback.is_playable` for working out whether or not
a particular file is able to be played
2024-08-28 15:30:53 +10:00
jacqueline af7a70450e Support adding filepaths to the track queue 2024-08-28 15:30:25 +10:00
jacquelineandcooljqln 9145722b08 Don't show n+1/n when we run out of queue 2024-08-28 04:07:21 +00:00
jacquelineandcooljqln 71aafc1711 Fix random.cpp not being built 2024-08-28 04:07:21 +00:00
jacquelineandcooljqln 32869129ff clang-format 2024-08-28 04:07:21 +00:00
jacquelineandcooljqln 9ec8d6dafc Handle the loading state whilst appending many tracks better
1) Update the queue length periodically so that the user can see we're
   working
2) Clear any previous track and display "loading..." instead
2024-08-28 04:07:21 +00:00
jacqueline d3c15bf070 spello 2024-08-28 12:47:29 +10:00
jacqueline 8f4e1ece75 Some minor cleanup, docs, assertions 2024-08-28 09:45:19 +10:00
jacqueline f253d2ee75 Timeout when writing output samples throughout the audio pipeline
This allows the audio pipeline to remain responsive even when the drain
buffer has completely filled. This in turn means that you now see the
track info in the 'now playing' screen change if the current track
changes whilst you are paused.

Since I was fucking around a lot in the audio processor anyway, I also
added mono->stereo expansion so that playing mono tracks on Bluetooth no
longer destroys your ears.
2024-08-28 09:45:19 +10:00
jacqueline ef227f8c51 Move the UI task main loop info iram 2024-08-28 09:45:19 +10:00
jacqueline b1c90278ae Delete unused half readme 2024-08-28 09:45:19 +10:00
ailurux 88e44694f0 Merge pull request 'Switch output mode to headphones when plugged in' (#90) from daniel/output_mode_switch into main
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/90
Reviewed-by: cooljqln <cooljqln@noreply.codeberg.org>
2024-08-27 12:44:29 +00:00
ailurux e0b057b3fa Various UI tweaks and improvements 2024-08-27 16:30:40 +10:00
ailurux a09b3f24fe Update battery icon to be a bit smaller 2024-08-27 13:19:39 +10:00
ailurux e6c77f17b8 Switch output mode to headphones when plugged in 2024-08-26 15:43:00 +10:00
jacqueline 91f26afa75 Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-08-26 13:50:39 +10:00
jacqueline 275ade5d13 Move some hot driver functions into iram
We've got the space for it now!

Also turn SW radio coexistence off whilst we're here; the docs recommend this if you only use Bluetooth(R)
2024-08-26 13:45:24 +10:00
ailurux e1b2149210 Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-08-26 11:15:48 +10:00
ailurux 978429109e Fix queue serialisation so that the position is correctly applied 2024-08-26 11:15:27 +10:00
jacqueline 360cc5342e it's free iram 2024-08-26 11:03:44 +10:00
jacqueline ad5760b5ab version bump 2024-08-19 10:27:12 +10:00
ailurux 0f9005626d Redesigned many icons, added styles for battery icon recolouring based on percentage 2024-08-16 16:56:58 +10:00
ailurux 9cdb268b2b Updated a few icons 2024-08-16 13:04:44 +10:00
jacqueline 3ed3f1dfeb Add cool skeumorphic embossing 2024-08-16 11:42:32 +10:00
ailurux f203bfde60 Add border to switch widget 2024-08-15 16:36:16 +10:00
ailurux 0662bb037b Some UI/themes tweaks 2024-08-15 16:14:18 +10:00
ailurux 98cc3edb01 Add luals-stub for queue open_playlist 2024-08-15 13:09:38 +10:00
ailurux 40e08f4823 Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-08-15 12:46:43 +10:00
ailurux 5ab4c2f0d6 Update position when updating the shuffler 2024-08-15 12:42:57 +10:00
jacqueline 493f8e1200 Don't break early from clearing PcmBuffer 2024-08-15 11:44:49 +10:00
jacqueline 9c56261122 Delay DB reindexing slightly
This helps with boot time by preventing a ton of
disk I/O before the UI has had a chance to load.
2024-08-15 10:26:26 +10:00
jacqueline d94c32d615 Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-08-15 09:44:29 +10:00
jacqueline 40c754a72a Always initialise bytes_cleared when clearing PcmBuffers 2024-08-14 15:18:57 +10:00
ailurux 022aa38396 Fix for position persisting when queue reset 2024-08-14 10:19:26 +10:00
jacqueline 326cc42a63 Don't spuriously report that the current track has changed
Fixes the last track in the queue repeating forever
2024-08-13 16:25:47 +10:00
jacquelineandcooljqln ff7468635f Remove/Migrated some old sdkconfig flags 2024-08-13 06:02:54 +00:00
jacquelineandcooljqln 6a2d259f46 Move off of deprecated APIs 2024-08-13 06:02:54 +00:00
jacquelineandcooljqln 822c9dc93e Fix build errors from stricter visibility requirements 2024-08-13 06:02:54 +00:00
jacquelineandcooljqln 5a02f34ed9 Update bt fork to be based on v5.3 2024-08-13 06:02:54 +00:00
jacquelineandcooljqln be9725c1c7 bump esp-idf to v5.3 2024-08-13 06:02:54 +00:00
jacqueline 9e1fc64c88 Accept a specific tag in loglevel 2024-08-13 14:21:43 +10:00
jacqueline 4fd15f148a Bump up the ui task stack size 2024-08-12 15:09:07 +10:00
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!
2024-08-12 13:20:08 +10:00
jacqueline 28cf749951 Make FileGatherer shaped more like a normal iterator 2024-08-12 13:20:08 +10:00
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.
2024-08-12 13:20:08 +10:00
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.
2024-08-12 13:20:08 +10:00
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.
2024-08-12 13:20:08 +10:00
ailuruxandcooljqln d719f9c501 daniel/theme-setting (#87)
- Themes can be loaded from disk and built-in
- Themes can be selected in a new themes menu of the settings screen
- Some touch-ups to existing themes
- The saved theme is persisted in nvs

Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/87
Reviewed-by: cooljqln <cooljqln@noreply.codeberg.org>
Co-authored-by: ailurux <ailuruxx@gmail.com>
Co-committed-by: ailurux <ailuruxx@gmail.com>
2024-08-12 03:19:03 +00:00
jacqueline 3d7b005dc9 Experiment with putting BT stack allocs in internal ram 2024-08-09 14:19:59 +10:00
jacqueline 5d390c821a Claw back some internal ram
- 'main' doesn't need 12k of internal ram
 - lvgl's draw task doesn't need that much either
 - also lower the bg worker stack sizes whilst we're here, since they've got tons over headroom
2024-08-09 13:11:34 +10:00