max / audiofiles
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
6 files changed,
+44 insertions,
-37 deletions
| @@ -23,8 +23,9 @@ | |||
| 23 | 23 | # type of its crosses a renderer boundary, so it is under the same rule as | |
| 24 | 24 | # makeover-geometry above rather than the layout/immediate pair below. | |
| 25 | 25 | makeover-timing = "0.1" | |
| 26 | - | # The described screens, behind audiofiles-browser's `quasi` feature. By git URL | |
| 27 | - | # with a version requirement, per the tree's rule for cross-repo deps. | |
| 26 | + | # The described screens, which are audiofiles-browser's screens. By git URL with | |
| 27 | + | # a version requirement, per the tree's rule for cross-repo deps. They were | |
| 28 | + | # behind a `quasi` feature until 2026-08-25, when the last flip landed. | |
| 28 | 29 | quasi-router = { git = "https://makenot.work/git/max/quasi.git", version = "0.61" } | |
| 29 | 30 | quasi-immediate = { git = "https://makenot.work/git/max/quasi.git", version = "0.61" } | |
| 30 | 31 | egui = { version = "0.35", default-features = false, features = ["default_fonts"] } |
| @@ -5,23 +5,18 @@ | |||
| 5 | 5 | edition.workspace = true | |
| 6 | 6 | ||
| 7 | 7 | [features] | |
| 8 | - | # `quasi` is on by default as of 2026-08-22, when the loose-files warning became | |
| 9 | - | # the first screen to serve from the description rather than sit beside one. Off, | |
| 10 | - | # that screen and every one flipped after it is simply missing. The feature | |
| 11 | - | # itself goes when the last flip lands; until then it is a switch with one | |
| 12 | - | # position that is still spelled. | |
| 13 | - | default = ["device-profiles", "quasi"] | |
| 8 | + | # The `quasi` feature is gone as of 2026-08-25. It existed so a described screen | |
| 9 | + | # could sit beside the shipped one it replaced and be wrong cheaply; the last | |
| 10 | + | # flip landed, nothing is beside anything, and a switch with one position is | |
| 11 | + | # just a thing to forget to set. `crate::quasi` is the app now. | |
| 12 | + | default = ["device-profiles"] | |
| 14 | 13 | device-profiles = ["dep:audiofiles-rhai", "dep:rayon"] | |
| 15 | - | # The described screens, off by default. On, `crate::quasi` compiles and the | |
| 16 | - | # shipped egui panels in `crate::ui` are untouched; off, none of it is built. | |
| 17 | - | # goingson's `7c8e6be2` arrangement, for the same reason. | |
| 18 | - | quasi = ["dep:quasi-router", "dep:quasi-immediate"] | |
| 19 | 14 | ||
| 20 | 15 | [dependencies] | |
| 21 | 16 | audiofiles-core = { workspace = true } | |
| 22 | 17 | audiofiles-rhai = { workspace = true, optional = true } | |
| 23 | - | quasi-router = { workspace = true, optional = true } | |
| 24 | - | quasi-immediate = { workspace = true, optional = true } | |
| 18 | + | quasi-router = { workspace = true } | |
| 19 | + | quasi-immediate = { workspace = true } | |
| 25 | 20 | audiofiles-sync = { workspace = true } | |
| 26 | 21 | egui = { workspace = true } | |
| 27 | 22 | makeover-layout = { workspace = true } |
| @@ -20,8 +20,7 @@ | |||
| 20 | 20 | pub mod storage_cap; | |
| 21 | 21 | pub mod ui; | |
| 22 | 22 | ||
| 23 | - | /// The described screens, behind the off-by-default `quasi` feature. | |
| 24 | - | #[cfg(feature = "quasi")] | |
| 23 | + | /// The described screens, which are the app's screens. | |
| 25 | 24 | pub mod quasi; | |
| 26 | 25 | pub mod waveform; | |
| 27 | 26 |
| @@ -1,10 +1,16 @@ | |||
| 1 | - | //! audiofiles' screens, described. | |
| 1 | + | //! audiofiles' screens, described. **These are the app's screens.** | |
| 2 | 2 | //! | |
| 3 | - | //! Behind the off-by-default `quasi` feature, so the shipped egui panels in | |
| 4 | - | //! [`crate::ui`] are exactly what they were while the described versions are | |
| 5 | - | //! proved beside them. That is goingson's arrangement, and the reason is the | |
| 6 | - | //! same: a port that replaces a working screen on the way in has to be right | |
| 7 | - | //! first time, and a port that sits beside one can be wrong cheaply. | |
| 3 | + | //! They sat behind an off-by-default `quasi` feature until 2026-08-25, beside | |
| 4 | + | //! the shipped egui panels they were replacing, which is goingson's arrangement | |
| 5 | + | //! and was right for the reason it gives: a port that replaces a working screen | |
| 6 | + | //! on the way in has to be right first time, and a port that sits beside one can | |
| 7 | + | //! be wrong cheaply. | |
| 8 | + | //! | |
| 9 | + | //! Every one of them has been flipped, the panels they replaced are deleted, and | |
| 10 | + | //! the feature is gone. What is left in [`crate::ui`] is the never-described | |
| 11 | + | //! set — the theme, the widgets, the colour space, the host's file dialogs and | |
| 12 | + | //! the instrument keyboard — plus the confirm overlay, which is what | |
| 13 | + | //! [`Act::confirm`](quasi_router::Act::confirm) asks *through*. | |
| 8 | 14 | //! | |
| 9 | 15 | //! # What the router's state is, and why it is this small | |
| 10 | 16 | //! |
| @@ -1,14 +1,21 @@ | |||
| 1 | - | //! The described screens, in windows beside the shipped ones. | |
| 1 | + | //! The described screens, in the windows the shipped ones used to have. | |
| 2 | 2 | //! | |
| 3 | - | //! Beside rather than instead of, which is the whole arrangement: with the | |
| 4 | - | //! feature on, opening Settings opens two windows and opening Cloud Sync opens | |
| 5 | - | //! two, so each port can be compared by looking at it. A port that replaced a | |
| 6 | - | //! working panel on the way in would have to be right first time. | |
| 3 | + | //! Beside them until 2026-08-25, which was the whole arrangement while it | |
| 4 | + | //! lasted: with the feature on, opening Settings opened two windows and each | |
| 5 | + | //! port could be compared by looking at it. The feature is gone and so are the | |
| 6 | + | //! panels, so these are the windows now. | |
| 7 | 7 | //! | |
| 8 | - | //! One described window per shipped window, each holding its own [`Runtime`], | |
| 9 | - | //! which mirrors the app rather than inventing navigation the shipped app does | |
| 10 | - | //! not have. A described screen *can* navigate — that is what [`Step::Call`] is | |
| 11 | - | //! — but a link from Settings to Sync would be a screen this port made up. | |
| 8 | + | //! One window per screen, each holding its own [`Runtime`], which mirrors the | |
| 9 | + | //! app rather than inventing navigation the shipped app did not have. A | |
| 10 | + | //! described screen *can* navigate — that is what [`Step::Call`] is — but a | |
| 11 | + | //! link from Settings to Sync would be a screen this port made up. | |
| 12 | + | //! | |
| 13 | + | //! **Two of these windows cannot currently be opened**, and that is a hole this | |
| 14 | + | //! module did not make: the doors that set `settings.show_manager` and | |
| 15 | + | //! `sync.show_panel` were the shipped sidebar's and went with `49b7429`, and the | |
| 16 | + | //! described toolbar reaches both addresses by navigating the shell inline | |
| 17 | + | //! instead. Filed as audiofiles `8d5519cb`; `draw_settings` and `draw_sync` are | |
| 18 | + | //! kept because the answer may well be to re-wire the doors. | |
| 12 | 19 | //! | |
| 13 | 20 | //! # What this module is, and what it deliberately is not | |
| 14 | 21 | //! |
| @@ -261,11 +261,11 @@ | |||
| 261 | 261 | pub settings: SettingsUiState, | |
| 262 | 262 | /// The described settings screen, behind the `quasi` feature. | |
| 263 | 263 | /// | |
| 264 | - | /// Its own state rather than a field on `SettingsUiState`: the described | |
| 265 | - | /// screen holds what was typed into it, and the shipped panel holds its own | |
| 266 | - | /// separately. Two windows, two states, no sharing, which is what lets them | |
| 267 | - | /// be compared. | |
| 268 | - | #[cfg(feature = "quasi")] | |
| 264 | + | /// Its own state rather than a field on `SettingsUiState`, which the | |
| 265 | + | /// beside-arrangement needed and the described screens still want: this | |
| 266 | + | /// holds one `Runtime` per window, plus what a picker answered and what a | |
| 267 | + | /// destination has room for. A frame does not outlive itself and the | |
| 268 | + | /// buffers behind the fields have to. | |
| 269 | 269 | pub described: crate::quasi::panel::Described, | |
| 270 | 270 | ||
| 271 | 271 | /// Tag-classifier UI state (rules builder in Settings). | |
| @@ -447,7 +447,6 @@ | |||
| 447 | 447 | == Some("1"); | |
| 448 | 448 | ||
| 449 | 449 | Ok(Self { | |
| 450 | - | #[cfg(feature = "quasi")] | |
| 451 | 450 | described: crate::quasi::panel::Described::default(), | |
| 452 | 451 | data_dir: data_dir.to_path_buf(), | |
| 453 | 452 | backend, |