Repository navigation
fix(locallibrary-cli): player output picking, active loops, shifted keys - #306
Merged
Merged
Conversation
Planned as these commits, folded into one because they share files: - fix(locallibrary-cli): open the player's outputs in the background - feat(locallibrary): read active loops from the analysis and loop them in the player - fix(locallibrary-cli): take a shifted letter sent as its code for the capital - test(locallibrary-cli): the mixes-into panel's keys and quantize on any grid
bnb
previously approved these changes
Oct 30, 2026
# Conflicts: # apps/locallibrary/CHANGELOG.md # apps/locallibrary/TODO.md
bnb
previously approved these changes
Oct 31, 2026
Contributor
Author
|
Closing and reopening so CI runs on the new single-workflow CI against current main. Branch unchanged. |
botandbang
enabled auto-merge
October 31, 2026 23:36
botandbang
disabled auto-merge
October 31, 2026 23:45
botandbang
enabled auto-merge
November 1, 2026 16:29
bnb
approved these changes
Nov 1, 2026
Rust coverageFrom run 23. Both are held to the thresholds in .cargo/config.toml.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
The player now opens its outputs on a worker thread and reports back through the app's message channel. That covers the output picked from the outputs list (
d) and the one it opens to play through at start, on the first play, or after an output goes away. Picking one, the track keeps playing through the old output. Playing a track with no output open, its file opens meanwhile and waits for the output. When no output opens, the player says it can't play, and space carries on from there. Keys still work while a slow Bluetooth or AirPlay device answers, and the last output asked for wins.App::play_fileno longer returns a bool.Loops that rekordbox marks active (PCPT status 4) now play round on their own when playback reaches them.
anlz::cuesreads the status,anlz::track_cuescarries the flag from the.DAT's basic lists onto the.EXT's extended list, andloclib-model'sanalysis::Cuehas a newactive_loopfield (default false when missing). The RPC schema and TypeScript types are regenerated.Key events where shift comes as a modifier on a lowercase letter (CSI u, xterm's modifyOtherKeys) are now read as the capital.
Qquit the player in those terminals.Added tests:
Fixes LOC-79
Fixes #181
Fixes LOC-78
Fixes #180
Refs LOC-11 (a likely cause fixed; the reporter needs to confirm)
Refs #99
Refs LOC-13 (not reproduced; test added)
Refs #103
LOC-98 (#225) was already fixed by efb0e25 and can be closed there.
How it was tested
cargo fmt --check, andcargo clippy --all-targets -- -D warningsfor loclib-model, loclib-waveform, locallibrary and locallibrary-cli.cargo nextest run -p locallibrary-cli -E 'binary(locallibrary) & test(/^tui::/)': 518 pass. The output, active loop, quantize, shifted key and mixes-into tests pass; the new active loop property passed 3 x 300 cases.x86_64-pc-windows-msvcclippy and the full suite.Checklist
apps/locallibrary/CHANGELOG.mdhas a line under Unreleased, if people using it will noticedocs/and--helpstill say what the code does (apps/locallibrary/docs/rpc/too, for a sidecar change)