audio_route: the Core Audio process tap gains Windows (WASAPI process loopback; the source is ducked through its ISimpleAudioVolume) and Linux (the PulseAudio/PipeWire monitor of the source's sink; ducked through its stream volume) backends behind the same Route API. A route only monitors by default (copy for meters and visualisers; the app's own output is untouched). Route::set_processing turns processing on: the source is ducked to 2^-13 and boosted back by exactly 2^13 in float, so the processed signal is bit-exact. RouteConfig.state_dir keeps the duck state, so restore_after_crash puts a ducked volume back after a crash. script/wgsl: an if/else whose branches end in a value nothing uses wrote that value as a bare statement (_phi_353;). Metal, GLSL and HLSL accept that, WGSL does not, so DrawMenuRow failed on Vulkan and menu rows lost their drawing (the theme chips on Linux). ShaderBackend::write_discarded_expr writes such values as `_ = expr;` for WGSL and keeps void calls as statements, in both places that emit leftovers. MAKEPAD_TRACE=shader.wgsl lifts the two-error log suppression. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
10 lines
539 B
Rust
10 lines
539 B
Rust
fn main() {
|
|
let manifest = std::path::PathBuf::from(std::env::var("CARGO_MANIFEST_DIR").unwrap());
|
|
let plist = manifest.join("examples/Info.plist");
|
|
println!("cargo:rerun-if-changed={}", plist.display());
|
|
// The example's Info.plist (NSAudioCaptureUsageDescription) is a macOS
|
|
// linker section; other linkers do not take the flag.
|
|
if std::env::var("CARGO_CFG_TARGET_OS").as_deref() == Ok("macos") {
|
|
println!("cargo:rustc-link-arg-examples=-Wl,-sectcreate,__TEXT,__info_plist,{}", plist.display());
|
|
}
|
|
}
|