Allen Hill
66bbf8639e
Parameterise Peripheral by its Devices and add CDChanger as one
2026-06-27 10:29:34 -07:00
Allen Hill
d98cc8acad
Add C++ Bus class for the physical layer interface
2026-06-25 20:40:10 -07:00
Allen Hill
67ba8e774c
fix some clang-tidy warnings
2026-06-25 18:17:09 -07:00
Allen Hill
1877bb0658
Add C++ Peripheral class
2026-06-25 18:16:38 -07:00
Allen Hill
02b370dd06
Port Queue to C++
...
Some knock-on changes to keep a simple design:
- Bake the data array into AVCLAN_frame_t
- Bundle the response/reaction with AVCLAN_frame_t
- (Needed to maintain correct/simple ownership semantics with the
cache and outgoing/incoming queues)
- Switch status frame update ticks to use a regular
cache-originating/owned frame
2026-06-25 14:28:19 -07:00
Allen Hill
77ff4652fd
Prep for C++ port
2026-06-23 18:29:49 -07:00
Allen Hill
c895034bb2
Update copyright headers to use SPDX id's
2026-06-23 17:51:29 -07:00
Allen Hill
0b0c9335f9
Decouple hardware specific code from generic, agnostic code
2026-06-23 17:29:52 -07:00
Allen Hill
fb130559e2
Reorganize code in prep for hardware decoupling and port to C++
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-22 18:13:34 -07:00
Allen Hill
2a195972a8
Add triple-press for skip back
2026-06-21 14:24:02 -07:00
Allen Hill
c8a3797b82
Tweak debug play/pause test
2026-06-20 20:32:03 -07:00
Allen Hill
d6340d41a3
Stop "playing" after 2 failed status updates
2026-06-20 20:30:52 -07:00
Allen Hill
796c868255
Only play (headset) on after first pause
2026-06-20 20:29:49 -07:00
Allen Hill
355b01964f
Properly fix headset functions when there's bus activity
2026-06-21 14:21:35 -07:00
Allen Hill
59b8bd0a54
Delay starting status timer until state has been normalized
2026-06-18 19:58:50 -07:00
Allen Hill
0464261b6e
Only "stop playing" if we ARE playing
2026-06-18 19:58:50 -07:00
Allen Hill
8350f1d426
Resolve/unlatch a latched comparator
2026-06-18 19:58:50 -07:00
Allen Hill
aefd539715
Improve periodic status reporting (tune interval better, reset count when changing time)
2026-06-18 19:58:50 -07:00
Allen Hill
c4648694fe
reduce scope/improve locality of response arrays
2026-06-18 19:58:50 -07:00
Allen Hill
981bbb68e3
use direct instead of pointer access for cd track/min/sec
2026-06-18 19:58:50 -07:00
Allen Hill
6f61cf11b3
reorg some functionality
2026-06-18 19:58:50 -07:00
Allen Hill
dd3406c056
add more static annotations
2026-06-18 19:58:50 -07:00
Allen Hill
95925b563a
Stop playing if nobody's listening
2026-06-18 19:58:50 -07:00
Allen Hill
26b0d6c55f
start/stopEvent bodies should be in atomic blocks
2026-06-18 19:58:50 -07:00
Allen Hill
c95ac93ca7
PIT shouldnt start off enabled
2026-06-18 19:58:50 -07:00
Allen Hill
fee74e05c8
Add headset function control
2026-06-18 19:58:50 -07:00
Allen Hill
0830cf06dc
Support fast-forward/rewind
2026-06-18 19:58:50 -07:00
Allen Hill
60d39c1c2f
Correctly respond to button actions (CMD_SW state report)
2026-06-18 19:58:50 -07:00
Allen Hill
09782495ab
Improve/correct several response bodies
2026-06-18 19:58:50 -07:00
Allen Hill
c366454c8f
Fix mutebus and improve bool literal hygiene
2026-06-15 12:52:58 -07:00
Allen Hill
da17c724d6
Fix track change logic (track is/should be serialized as BCD)
2026-06-15 18:52:21 +00:00
Allen Hill
c591e87c98
Tweak/fix(?) Initial/Playback/Loading responses
2026-06-13 19:42:05 +00:00
Allen Hill
6a9b8affa2
Fix some safety/ergonomic issues
2026-06-13 19:28:56 +00:00
Allen Hill
3d0f92c824
Shift state machine from main loop to driver file
2026-06-13 19:27:55 +00:00
Allen Hill
c0bb9c4018
Use bool consistently now that we're on C23
2026-05-15 18:28:54 -07:00
Allen Hill
9fbaa7a55f
Flatten msg triage switches to dispatch on first 3 bytes together (as uint32_t)
2026-05-15 18:28:54 -07:00
Allen Hill
79516796d5
Replace iffy bitfield use with uin8_t fields and enums
2026-05-15 18:28:54 -07:00
Allen Hill
4d4b08f67d
Remove unused enum
2026-05-15 18:28:54 -07:00
Allen Hill
57d0513d04
Prevent pushing nullptr into queues
2026-05-15 18:28:54 -07:00
Allen Hill
d09aa684f8
Make global message templates static const
2026-05-15 18:28:54 -07:00
Allen Hill
83271ef0d2
Use better name for variable
2026-05-15 18:28:54 -07:00
Allen Hill
87f0ddc2d4
Rename field broadcast => is_unicast
...
Improves readability and logical flow clarity
2026-05-15 18:28:54 -07:00
Allen Hill
f68fa5ab60
Manually inline sbi/cbi macros
2026-05-15 18:28:54 -07:00
Allen Hill
877e88fcd0
Use ATOMIC_BLOCK instead of manual cli/sei
2026-05-15 18:28:54 -07:00
Allen Hill
194c3928f9
Use more readable byte access patterns (compiles the same)
2026-05-15 18:28:54 -07:00
Allen Hill
99ca75ce45
Fix missed REPL docs update
2026-05-15 18:28:54 -07:00
Allen Hill
1fa9d63ac5
Add some missing volatile annotations
2026-05-15 18:28:54 -07:00
Allen Hill
aefc698fca
Mark incrementRead as static inline
2026-05-15 18:28:54 -07:00
Allen Hill
e5797b598a
Fix binary msg read edge cases
2026-05-15 18:28:54 -07:00
Allen Hill
b510eaaef8
Tighten PIT interrupt and avoid some BCD edge-cases
2026-05-15 18:28:54 -07:00