Commit Graph
100 Commits
Author SHA1 Message Date
jacqueline 2f16d23002 Start on wiring up playback screen to real data 2023-07-05 20:09:03 +10:00
jacqueline 7eec2cc5b6 Comment out leveldb logging
It sometimes produces a weird format string that breaks everything
2023-07-05 17:13:19 +10:00
jacqueline 75955fc47c Reset styles, flesh out playback and browser screens 2023-07-05 17:06:34 +10:00
jacqueline 191441ebe2 Add missing files >.< 2023-07-04 14:39:22 +10:00
jacqueline 80170642ea Add basic browsing and playing ui 2023-07-04 13:06:33 +10:00
jacqueline ec28b36a44 gpio expander pin change -> event! 2023-06-30 21:01:25 +10:00
jacqueline 371f0a20ca Clean up gpios interface 2023-06-30 20:48:40 +10:00
jacqueline 0347555d5b Start on converting gpio expander interupts to fsm events 2023-06-30 17:05:11 +10:00
jacqueline 9763cc955c Improve encoder driver
It actually works and clicks now!

Still a bit rough though. Need to dive into lvgl internals to work out
what it's doing with enc_diff
2023-06-26 12:55:46 +10:00
jacqueline c124c8f94d support both files and ids in play 2023-06-26 10:39:20 +10:00
jacqueline 072c2c23e5 Parse and zero-pad track numbers 2023-06-23 21:33:14 +10:00
jacqueline 245d9ff4b9 add indexing to the database
idk man i wrote most of this in a fugue state whilst high on the couch
with my cat
2023-06-23 15:32:11 +10:00
jacqueline aee0474191 Add a shared string library 2023-06-23 15:31:45 +10:00
jacqueline cde8002df4 Fix (i think?) mysterious overly large reads in libmad 2023-06-22 09:40:46 +10:00
jacqueline b58b072d2d Add current playback timestamps 2023-06-21 15:33:51 +10:00
jacqueline 23ecff1011 Fix spurious stream starts 2023-06-21 13:37:50 +10:00
jacqueline 8fed966c96 Merge branch 'main' of git.sr.ht:~jacqueline/tangara-fw 2023-06-19 15:47:04 +10:00
jacqueline acccd822f0 back to back flac playback is working :) 2023-06-19 15:36:43 +10:00
jacqueline 0c81c3e1f6 paths with spaces? wow!! 2023-06-19 09:15:19 +10:00
jacqueline 6ff8b5886e Support playing tracks by track id 2023-06-19 08:51:34 +10:00
jacqueline 4e5dba1583 Fix leveldb's alignment assumptions (we have 4 byte alignment) 2023-06-19 08:49:48 +10:00
jacqueline 5b7b88420b Fix issues with importing my entire library 2023-06-16 13:14:45 +10:00
jacqueline c6bb42cdd2 song -> track 2023-06-15 10:42:28 +10:00
jacqueline 0024bb1dbe Remove chatty loggin 2023-06-15 10:34:41 +10:00
jacqueline a2c1dfbabd Add vorbis and flac decoders, flesh out codec interface
vorbis doesn't quite work yet, not sure why. will pick it up again
later.
2023-06-15 10:33:46 +10:00
jacqueline 1238437717 Add flac and ogg decoder deps 2023-06-08 08:02:37 +10:00
jacqueline e12ac1d963 Do some prep cleanup for multiple filetypes 2023-06-07 15:39:28 +10:00
jacqueline 7e96482087 fix shared peripheral interrupts causing hangs 2023-06-07 13:45:27 +10:00
jacqueline 1f903accd9 Flesh out audio state machine for playback
Also fix mono playback
2023-06-07 13:19:45 +10:00
jacqueline 2a568846bd Cute brightness fade to avoid ugly startup :) 2023-06-07 10:30:33 +10:00
jacqueline 610991455d R4 pre-emptive bringup
Includes stripping out the IC-specific I2S stuff, and doing more manual
volume control using pots
2023-06-07 09:50:25 +10:00
jacqueline d2e5d2ab3c Fix up screen brightness and transitions 2023-06-06 11:49:41 +10:00
jacqueline 8a2a2d2265 Get basic audio playback going again 2023-06-06 10:20:46 +10:00
jacqueline ee5f662f9b Fix missing service impl 2023-06-01 15:52:07 +10:00
jacqueline 56c1b5f93b Fix include weirdness for lvgl 2023-06-01 15:42:39 +10:00
jacqueline dd27c35304 convert lvgl from submodule to a plain old directory 2023-06-01 15:41:47 +10:00
jacqueline 6fd588e970 Add touchwheel -> encoder adapter 2023-06-01 15:28:54 +10:00
jacqueline db2e29a72d Start on audio FSM playback. needs more thought. 2023-06-01 15:28:10 +10:00
jacqueline 4b93bb22db fish :) 2023-05-25 14:53:17 +10:00
jacqueline 65833649f4 Add some placeholder splash and menu screens
Includes a bunch of misc display fixes. Most significantly, our lvgl
tickers was busted.
2023-05-24 13:30:05 +10:00
jacqueline 3b371cfc54 reuse annotate new files 2023-05-24 07:42:03 +10:00
jacqueline 3041e48ca6 Merge branch 'main' of git.sr.ht:~jacqueline/tangara-fw 2023-05-24 07:20:16 +10:00
jacqueline 876e5e70e9 Don't crash if there's no sd card 2023-05-24 07:17:42 +10:00
jacqueline a4f94c812a Annote E V E R Y T H I N G with license info 2023-05-23 13:56:22 +10:00
jacqueline ebcdf93930 Re-enable app console 2023-05-23 09:29:22 +10:00
jacqueline 4bff06c76c Drop himem audio buffers (for now?)
For some reason the spinlocks required now block forever? Very odd.

On the plus side, this turned out to be the issue that was stopping the
audio pipeline from running on the app core.
2023-05-23 09:13:22 +10:00
jacqueline ecee01fe97 Remove audio drain task
ISR drain works fine!
2023-05-23 09:00:06 +10:00
jacqueline 82830f995c Fix some logging, add transition to missing storage 2023-05-22 16:52:50 +10:00
jacqueline da977aaa3f Merge branch 'main' into state-machines 2023-05-22 15:35:50 +10:00
jacqueline 5ac4d3949c Generalise worker tasks, and centralise task priorities + stacks
Includes making the display driver use a worker task for flushes, so
that our double buffering actually does something useful /facepalm
2023-05-22 15:23:51 +10:00
jacqueline a6ab150405 Add tinyfsm, start converting core functions to an FSM-based event loop 2023-05-19 21:21:27 +10:00
jacqueline b320a6a863 Add basic samd class 2023-05-18 18:17:14 +10:00
jacqueline d71f726c42 Add pagination to database queries 2023-05-16 14:11:38 +10:00
jacqueline 785349eb5b Touchwheel works!!!!!!! 2023-05-12 15:24:56 +10:00
jacqueline f3d0e8f98f Slightly improve touchwheel not-working-ness
It still doesn't work tho
2023-05-12 14:12:23 +10:00
jacqueline 961c8014ad Add some basic tests for the database 2023-05-12 10:30:07 +10:00
jacqueline 10eb120878 Add tests for record encoding 2023-05-09 13:50:04 +10:00
jacqueline d739edef76 Fix tests!
Includes removing some that never passed and/or weren't quite a good
idea
2023-05-09 11:20:57 +10:00
jacqueline 16e6180ba7 Database init is now stable! 2023-05-08 17:47:29 +10:00
jacqueline fe19478e0f Output hash of song triple 2023-05-02 16:10:21 +10:00
jacqueline 86c44199b0 add komihash: the fast and fun hashing header! 2023-05-02 16:10:08 +10:00
jacqueline ee559cd722 Give the touchwheel a little more juice for debugging 2023-05-02 16:01:41 +10:00
jacqueline 09ad66136d clang-format 2023-04-28 13:54:46 +10:00
jacqueline bdadc159c7 Add libtags for extracting info from files 2023-04-28 13:26:47 +10:00
jacqueline cd520b9360 Make queries a little less copy-paste 2023-04-27 16:03:55 +10:00
jacqueline 5d7cbec34c Move DB interactions to a background thread 2023-04-27 12:55:30 +10:00
jacqueline fbe047a35f Add some basic data and retrieval 2023-04-26 15:21:32 +10:00
jacqueline 083f4011aa removed unused raw db stuff 2023-04-26 12:27:28 +10:00
jacqueline 2be4d4204c Allow RenameFile to overwrite existing files 2023-04-26 10:20:53 +10:00
jacqueline 7972bd4567 Merge branch 'main' into leveldb 2023-04-26 08:49:02 +10:00
jacqueline 5575378c1c fix use-after-move 2023-04-21 19:03:23 +10:00
jacqueline 464a4bf527 Add a RAII-friendly DI wrapper for driver instances 2023-04-21 18:42:49 +10:00
jacqueline 84f45e6045 Don't crash if there's no sd card :) 2023-04-21 18:42:37 +10:00
jacqueline 7083459cf3 wrap driver instance ownership + di in a class 2023-04-21 15:27:57 +10:00
jacqueline 130009eb14 Pin audio pipeline to the app core 2023-04-21 10:35:39 +10:00
jacqueline cc3fd9571e split out lvgl task into its own component 2023-04-21 10:30:52 +10:00
jacqueline f955804495 use a freertos timer for lvgl ticks 2023-04-21 10:00:05 +10:00
jacqueline 27c63ebb95 Switch to an MVP-ready 16bit three wire DAC setup 2023-04-20 21:25:22 +10:00
jacqueline 2d95b63727 Working without big distortion :) 2023-04-20 14:47:32 +10:00
jacqueline 731b2cfa77 working isr-based sink, but still grainy 2023-04-20 11:25:43 +10:00
jacqueline 4c77950e70 Pipeline working and outputting correctly, but noisy 2023-04-19 16:45:50 +10:00
jacqueline 561f9d2a07 Ensure the sink buffer is large enough to not fully drain during
playback
2023-04-19 13:00:42 +10:00
jacqueline 25c5896dc5 add some bounds checking asserts 2023-04-19 10:29:40 +10:00
jacqueline 7a54ff0df9 WIP track down new pipeline memory issues 2023-04-19 10:29:40 +10:00
jacqueline 40a9734b04 Redo pcm registers to include pages 2023-04-19 10:29:40 +10:00
jacqueline 3836768bb8 new pipeline working(?), but the dac eludes me 2023-04-19 10:29:40 +10:00
jacqueline 7c6fd654f5 New pipeline building, still needs proper control 2023-04-19 10:29:38 +10:00
jacqueline 3817ec0c77 turn on amp for development 2023-04-19 10:27:59 +10:00
jacqueline a9531c86a4 mostly single task pipeline 2023-04-19 10:27:59 +10:00
jacqueline 2a46eecdc6 Temporarily allow the touchwheel to be missing 2023-04-19 10:27:33 +10:00
jacqueline 35ecf8c49b rename 2023-04-17 16:39:06 +10:00
jacqueline a1cef17c5b Leave the display reset pin alone; we don't need it 2023-04-12 16:37:27 +10:00
jacqueline c93ed8efad fix some display issues 2023-04-06 16:18:04 +10:00
jacqueline 1b245316fe fix up touchpad timeouts, make it less chatty 2023-04-04 14:48:35 +10:00
jacqueline 9799ab458d fix sd card on for dev + mux pin 2023-03-30 10:15:09 +11:00
jacqueline a0ae39befe Update pinouts for R3 2023-03-30 09:31:08 +11:00
jacqueline 53ad4fc3f2 daniel wat 2023-03-13 15:19:22 +11:00
jacqueline b9a75cd55a LDO up at boot 2023-03-10 12:26:32 +11:00
jacqueline dd3cb1b760 Merge remote-tracking branch 'refs/remotes/origin/main' 2023-03-08 12:52:58 +11:00
jacqueline 0fce4fcc06 update to faceplate bodge 2023-03-08 12:47:56 +11:00