mirror of
https://github.com/storytold/soundcraft.git
synced 2026-11-09 20:00:25 -06:00
Display labels only; command ids, catalog paths, session tokens and processor ids are unchanged. - Avid-listed names and bundled plug-in products get our own names (Beat Analysis, Punch Recording, Room Reverb, Compressor/Limiter, Saturator, Bit Crusher, Rendered (High Quality), ...). - Features we don't have stay in the menu as disabled placeholders with "Not available yet." (Tempo Sync, No ARA plug-ins, Analog Saturation). - AudioSuite, Elastic Audio, TrackPunch, Pitch Shift Legacy and Time Compression Expansion keep their names until RFC-0029 settles. - parity_floor and catalog dispatch unchanged; docs/feature-naming.md has the crosswalk.
57 lines
2.2 KiB
Rust
57 lines
2.2 KiB
Rust
//! Display-only terminology. Catalog paths, command ids, processor ids and saved values are stable.
|
|
//! Never use the returned label for command dispatch or persistence. Labels for features we do not
|
|
//! have describe a placeholder, which the menu draws disabled ("Not available yet.") until the
|
|
//! behaviour exists: `catalog::PLACEHOLDERS` lists them.
|
|
//!
|
|
//! Names still being settled (RFC-0029) are not mapped here: the incumbent's label stays until the
|
|
//! RFC decides, so AudioSuite, Elastic Audio, Elastic Properties and TrackPunch pass through.
|
|
|
|
pub fn display_label(label: &str) -> &str {
|
|
match label {
|
|
"Beat Detective" => "Beat Analysis",
|
|
"x-form" => "Rendered (High Quality)",
|
|
"QuickPunch" => "Punch Recording",
|
|
"Ableton Link" => "Tempo Sync",
|
|
"Pro Tools Search" => "Search",
|
|
"Pro Tools Projects" => "Shared Projects",
|
|
"Melodyne" => "No ARA plug-ins",
|
|
"HEAT" => "Analog Saturation",
|
|
"Activate HEAT" => "Activate Analog Saturation",
|
|
"Sibelius" => "MusicXML",
|
|
"Sibelius..." => "MusicXML...",
|
|
_ => label,
|
|
}
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn feature_labels_are_descriptive_without_changing_unknown_text() {
|
|
for (old, new) in [
|
|
("Beat Detective", "Beat Analysis"),
|
|
("x-form", "Rendered (High Quality)"),
|
|
("QuickPunch", "Punch Recording"),
|
|
("Ableton Link", "Tempo Sync"),
|
|
("Pro Tools Search", "Search"),
|
|
("Pro Tools Projects", "Shared Projects"),
|
|
("Melodyne", "No ARA plug-ins"),
|
|
("HEAT", "Analog Saturation"),
|
|
("Activate HEAT", "Activate Analog Saturation"),
|
|
("Sibelius...", "MusicXML..."),
|
|
] {
|
|
assert_eq!(display_label(old), new);
|
|
}
|
|
assert_eq!(display_label("My session"), "My session");
|
|
}
|
|
|
|
/// Names deferred to RFC-0029 keep the incumbent's label until the RFC settles them.
|
|
#[test]
|
|
fn deferred_names_pass_through() {
|
|
for label in ["AudioSuite", "AudioSuite Process", "Elastic Audio", "Elastic Properties", "Enable Elastic Audio on New Tracks", "TrackPunch"] {
|
|
assert_eq!(display_label(label), label);
|
|
}
|
|
}
|
|
}
|