mirror of
https://github.com/storytold/soundcraft.git
synced 2026-10-14 14:26:46 -04:00
Plugins that offer no floating editor (most CLAP plugins on Windows) now get a host window of SoundCraft's: the GUI is created embedded, parented to a top-level HWND owned by the app window, sized from get_size, resized on request_resize (applied by the editor's idle on the main thread, then set_size), and torn down when the user closes the window. Floating editors work as before; other platforms still report embedded editors as unsupported. Docs: plugin-parity editor rows and the roadmap log. Co-Authored-By: Claude Opus 5.5 <[email protected]>
39 lines
1.3 KiB
TOML
39 lines
1.3 KiB
TOML
[package]
|
|
name = "soundcraft-clap-host"
|
|
description = "SoundCraft CLAP plugin host: scans, loads and runs third-party CLAP plugins behind the safe soundcraft-dsp Plugin trait (the only crate with unsafe code)"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
rust-version.workspace = true
|
|
repository.workspace = true
|
|
|
|
[dependencies]
|
|
soundcraft-dsp.workspace = true
|
|
serde.workspace = true
|
|
thiserror.workspace = true
|
|
log.workspace = true
|
|
|
|
# The Windows host window for embedded editors (a top-level HWND the plugin parents its GUI in).
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows-sys = { version = "0.61", features = ["Win32_Foundation", "Win32_Graphics_Gdi", "Win32_System_LibraryLoader", "Win32_UI_Input_KeyboardAndMouse", "Win32_UI_WindowsAndMessaging"] }
|
|
|
|
[[test]]
|
|
name = "editor_main_thread"
|
|
harness = false
|
|
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
clap-sys = "0.5"
|
|
libloading = "0.8"
|
|
|
|
# The isolated unsafe helper crate (craftrules never-crash): this crate opts out of the workspace
|
|
# `unsafe_code = "forbid"` for itself only. It denies unsafe everywhere and allows it solely on the
|
|
# FFI module (`src/ffi.rs`). The rest mirrors `[workspace.lints]`.
|
|
[lints.rust]
|
|
unsafe_code = "deny"
|
|
|
|
[lints.clippy]
|
|
dbg_macro = "warn"
|
|
todo = "warn"
|
|
too_many_arguments = "allow"
|
|
type_complexity = "allow"
|