S-VIEW-3: add envelope_overlay + envelope_edit pure modules
AHDSR/Trigger params -> polyline forward map (overlay) and node hit-test + clamped/monotonic pixel->param inverse map (edit) for the draggable Sample-view envelope. Engine-free, unit-tested, wired into ctest. No shell changes.
This commit is contained in:
@@ -762,6 +762,24 @@ add_library(param_slider STATIC src/vst/param_slider.cpp)
|
||||
target_include_directories(param_slider PUBLIC src/vst)
|
||||
target_link_libraries(param_slider PUBLIC editor_geometry)
|
||||
|
||||
# envelope_overlay (Phase S-VIEW-3) — PURE amp-envelope -> polyline geometry for the Sample-view
|
||||
# envelope overlay: AHDSR (Gate) / fade+%-length (Trigger) params + the sample's wall-clock
|
||||
# duration -> a breakpoint polyline in the waveform rect, at the same time base waveform_view maps.
|
||||
# The mirror of waveform_view / param_slider; links editor_geometry for the shared Rect.
|
||||
# Deliberately engine-free (no sample_map / sampler_core) — the shell packs the zone's stored
|
||||
# AdsrSeconds / TriggerParams into the small AmpEnvelope view struct. NEITHER SDK.
|
||||
add_library(envelope_overlay STATIC src/vst/envelope_overlay.cpp)
|
||||
target_include_directories(envelope_overlay PUBLIC src/vst)
|
||||
target_link_libraries(envelope_overlay PUBLIC editor_geometry)
|
||||
|
||||
# envelope_edit (Phase S-VIEW-3) — PURE node hit-test + pixel-delta -> clamped-param inverse map
|
||||
# for the draggable envelope nodes: monotonic-in-time + range-clamped (against caller-supplied
|
||||
# slider maxima) so a drag can never produce a param a slider couldn't. The mirror of card_drag;
|
||||
# links envelope_overlay for the shared node vocabulary + the timeToX/levelToY maps. NEITHER SDK.
|
||||
add_library(envelope_edit STATIC src/vst/envelope_edit.cpp)
|
||||
target_include_directories(envelope_edit PUBLIC src/vst)
|
||||
target_link_libraries(envelope_edit PUBLIC envelope_overlay)
|
||||
|
||||
add_executable(editor_geometry_tests tests/test_editor_geometry.cpp)
|
||||
target_link_libraries(editor_geometry_tests PRIVATE editor_geometry)
|
||||
add_test(NAME editor_geometry_tests COMMAND editor_geometry_tests)
|
||||
@@ -817,6 +835,19 @@ add_executable(param_slider_tests tests/test_param_slider.cpp)
|
||||
target_link_libraries(param_slider_tests PRIVATE param_slider)
|
||||
add_test(NAME param_slider_tests COMMAND param_slider_tests)
|
||||
|
||||
# envelope_overlay (S-VIEW-3): the pure amp-envelope -> polyline geometry (Gate AHDSR + Trigger
|
||||
# fade/%-length) at the waveform time base. Links ONLY envelope_overlay (+ its editor_geometry
|
||||
# dep) — NEITHER SDK — the plain-data-boundary proof.
|
||||
add_executable(envelope_overlay_tests tests/test_envelope_overlay.cpp)
|
||||
target_link_libraries(envelope_overlay_tests PRIVATE envelope_overlay)
|
||||
add_test(NAME envelope_overlay_tests COMMAND envelope_overlay_tests)
|
||||
|
||||
# envelope_edit (S-VIEW-3): the pure node hit-test + clamped/monotonic pixel->param inverse map.
|
||||
# Links ONLY envelope_edit (+ its envelope_overlay dep) — NEITHER SDK.
|
||||
add_executable(envelope_edit_tests tests/test_envelope_edit.cpp)
|
||||
target_link_libraries(envelope_edit_tests PRIVATE envelope_edit)
|
||||
add_test(NAME envelope_edit_tests COMMAND envelope_edit_tests)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 4) The REAPER extension — a loadable module (dlopen'd by REAPER, not linked).
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user