W6 of the oak task list. scopes::math is a pure, unit-tested core (histogram binning, waveform min/max envelopes, vectorscope chroma projection, meter segment math, peak-hold decay) feeding three canvas widgets - Histogram, Waveform, Vectorscope - generic over LumaDataSource / ChromaDataSource traits the host implements over its frame buffers, plus an AudioLevelMeter over AudioMeterDataSource with lit segments and a peak marker. examples/scopes.rs drives all four from mock signals. 96 widget tests pass.
45 lines
961 B
TOML
45 lines
961 B
TOML
[package]
|
|
name = "gpui_widgets"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
authors = ["Oak <oak@users.noreply.github.com>"]
|
|
description = "Form controls, menus, dialogs and NLE widgets built on gpui"
|
|
publish = true
|
|
license = "Apache-2.0"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
anyhow.workspace = true
|
|
gpui.workspace = true
|
|
gpui_elements = { path = "../gpui_elements" }
|
|
thiserror.workspace = true
|
|
|
|
[dev-dependencies]
|
|
gpui = { workspace = true, features = ["test-support"] }
|
|
gpui_platform = { workspace = true, features = ["font-kit", "wayland", "x11"] }
|
|
|
|
[target.'cfg(target_os = "macos")'.dev-dependencies]
|
|
core-video.workspace = true
|
|
|
|
[[example]]
|
|
name = "controls"
|
|
path = "examples/controls.rs"
|
|
|
|
[[example]]
|
|
name = "menus_dialogs"
|
|
path = "examples/menus_dialogs.rs"
|
|
|
|
[[example]]
|
|
name = "viewer"
|
|
path = "examples/viewer.rs"
|
|
|
|
[[example]]
|
|
name = "project_explorer"
|
|
path = "examples/project_explorer.rs"
|
|
|
|
[[example]]
|
|
name = "scopes"
|
|
path = "examples/scopes.rs"
|