Q-W1 pt2: core/shell/app relocation + sub-namespaces; one concrete ui::Rect (LTRB fork retired); slot_map split from bank_book; BankIndex→BankModel; 59/59 green
This commit is contained in:
+120
-117
@@ -69,7 +69,7 @@ endif()
|
||||
# Regenerated at configure time whenever either changes; the exact string is substituted
|
||||
# verbatim and the channel bit fans out through app_version.
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/version_generated.h.in
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/core/version/version_generated.h.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/generated/version_generated.h
|
||||
@ONLY)
|
||||
|
||||
@@ -107,7 +107,7 @@ target_include_directories(file_bytes PUBLIC src)
|
||||
# 1) Pure model library — NO REAPER, NO SWELL. Builds & tests anywhere.
|
||||
# The sampler's heart: Sample metadata + BankIndex (Milestone 1).
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(bank_model STATIC src/bank_model.cpp)
|
||||
add_library(bank_model STATIC src/core/model/bank_model.cpp)
|
||||
target_include_directories(bank_model PUBLIC src)
|
||||
target_link_libraries(bank_model PRIVATE json)
|
||||
|
||||
@@ -115,7 +115,7 @@ target_link_libraries(bank_model PRIVATE json)
|
||||
# 2) Pure peaks library — NO REAPER, NO SWELL. Waveform min/max thumbnails from
|
||||
# raw PCM (Milestone 2). A sibling pure lib, kept distinct from bank_model.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(peaks STATIC src/peaks.cpp)
|
||||
add_library(peaks STATIC src/core/audio/peaks.cpp)
|
||||
target_include_directories(peaks PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -123,7 +123,7 @@ target_include_directories(peaks PUBLIC src)
|
||||
# file-name / project-relative path derivation for the capture shell (M3).
|
||||
# Split out so the fiddly path logic is unit-tested outside the DAW.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(capture_paths STATIC src/capture_paths.cpp)
|
||||
add_library(capture_paths STATIC src/core/capture/capture_paths.cpp)
|
||||
target_include_directories(capture_paths PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -132,7 +132,7 @@ target_include_directories(capture_paths PUBLIC src)
|
||||
# cache key for the docked bank_panel (M5). Split out so the layout logic is
|
||||
# unit-tested outside the DAW; the panel shell (SWELL/LICE/PCM) is DAW-verified.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(bank_grid STATIC src/bank_grid.cpp)
|
||||
add_library(bank_grid STATIC src/core/ui/bank_grid.cpp)
|
||||
target_include_directories(bank_grid PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -142,7 +142,7 @@ target_include_directories(bank_grid PUBLIC src)
|
||||
# unit-tested outside the DAW; the bank_panel header strip that draws it and
|
||||
# routes clicks to view::applyMode is DAW-verified. Mirror of bank_grid.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(mode_switch STATIC src/mode_switch.cpp)
|
||||
add_library(mode_switch STATIC src/core/view/mode_switch.cpp)
|
||||
target_include_directories(mode_switch PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -153,7 +153,7 @@ target_include_directories(mode_switch PUBLIC src)
|
||||
# overflow/scroll math is unit-tested outside the DAW; the bank_panel region
|
||||
# that draws it and routes clicks is DAW-verified. Mirror of mode_switch.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(tab_strip STATIC src/tab_strip.cpp)
|
||||
add_library(tab_strip STATIC src/core/ui/tab_strip.cpp)
|
||||
target_include_directories(tab_strip PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -162,7 +162,7 @@ target_include_directories(tab_strip PUBLIC src)
|
||||
# visibility derivation + parking/restore planner + JSON round-trip. Mirror of
|
||||
# bank_model; the folder tree is an INPUT supplied by the D2 shell.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(view_mode_model STATIC src/view_mode_model.cpp)
|
||||
add_library(view_mode_model STATIC src/core/view/view_mode_model.cpp)
|
||||
target_include_directories(view_mode_model PUBLIC src)
|
||||
target_link_libraries(view_mode_model PRIVATE json)
|
||||
# The pure lane-minting decision (planLaneMinting) names managed lanes via the ONE
|
||||
@@ -177,7 +177,7 @@ target_link_libraries(view_mode_model PUBLIC lane_keys)
|
||||
# view.cpp; this fiddly folder-depth walk is unit-tested here (mirrors
|
||||
# capture_paths splitting the path math out of the capture shell).
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(view_tree STATIC src/view_tree.cpp)
|
||||
add_library(view_tree STATIC src/core/view/view_tree.cpp)
|
||||
target_include_directories(view_tree PUBLIC src)
|
||||
target_link_libraries(view_tree PUBLIC view_mode_model)
|
||||
|
||||
@@ -189,7 +189,7 @@ target_link_libraries(view_tree PUBLIC view_mode_model)
|
||||
# live track/item GUID set and applies the tags is DAW-verified. Mirror of
|
||||
# view_tree splitting the folder-depth walk out of view.cpp.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(guid_diff STATIC src/guid_diff.cpp)
|
||||
add_library(guid_diff STATIC src/core/view/guid_diff.cpp)
|
||||
target_include_directories(guid_diff PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -200,7 +200,7 @@ target_include_directories(guid_diff PUBLIC src)
|
||||
# exemption) and #2 (name-keyed identity survives ordinal renumber). Split out
|
||||
# so the prefix rule is unit-tested; view.cpp reads the names from REAPER.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(lane_keys STATIC src/lane_keys.cpp)
|
||||
add_library(lane_keys STATIC src/core/view/lane_keys.cpp)
|
||||
target_include_directories(lane_keys PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -209,7 +209,7 @@ target_include_directories(lane_keys PUBLIC src)
|
||||
# load-bearing bit computation (no silent stretch, opt-in conform) is
|
||||
# unit-tested outside the DAW; the InsertMedia call itself is DAW-verified.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(insert_plan STATIC src/insert_plan.cpp)
|
||||
add_library(insert_plan STATIC src/core/capture/insert_plan.cpp)
|
||||
target_include_directories(insert_plan PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -220,7 +220,7 @@ target_include_directories(insert_plan PUBLIC src)
|
||||
# the DAW; the render-driving + selection reads stay in capture.cpp / main.cpp.
|
||||
# Depends on bank_model for the pure SourceMode enum.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(render_settings STATIC src/render_settings.cpp)
|
||||
add_library(render_settings STATIC src/core/capture/render_settings.cpp)
|
||||
target_include_directories(render_settings PUBLIC src)
|
||||
target_link_libraries(render_settings PUBLIC bank_model)
|
||||
|
||||
@@ -233,7 +233,7 @@ target_link_libraries(render_settings PUBLIC bank_model)
|
||||
# the selection read, transient re-selection, and render loop stay in main.cpp.
|
||||
# No dependency on bank_model — it takes plain ranges/values at its boundary.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(batch_capture STATIC src/batch_capture.cpp)
|
||||
add_library(batch_capture STATIC src/core/capture/batch_capture.cpp)
|
||||
target_include_directories(batch_capture PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -244,7 +244,7 @@ target_include_directories(batch_capture PUBLIC src)
|
||||
# outside the DAW; the bank_panel footer that draws it + routes clicks is
|
||||
# DAW-verified. Depends on render_settings for the pure TailMode enum + caps.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(tail_control STATIC src/tail_control.cpp)
|
||||
add_library(tail_control STATIC src/core/capture/tail_control.cpp)
|
||||
target_include_directories(tail_control PUBLIC src)
|
||||
target_link_libraries(tail_control PUBLIC render_settings)
|
||||
target_link_libraries(tail_control PRIVATE json)
|
||||
@@ -257,7 +257,7 @@ target_link_libraries(tail_control PRIVATE json)
|
||||
# sample between banks, JSON round-trip + legacy-bank_index→pool migration.
|
||||
# Mirror of bank_model / view_mode_model; wraps BankIndex (bank_model untouched).
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(bank_book STATIC src/bank_book.cpp)
|
||||
add_library(bank_book STATIC src/core/model/bank_book.cpp src/core/model/slot_map.cpp)
|
||||
target_include_directories(bank_book PUBLIC src)
|
||||
target_link_libraries(bank_book PUBLIC bank_model)
|
||||
target_link_libraries(bank_book PRIVATE json)
|
||||
@@ -271,7 +271,7 @@ target_link_libraries(bank_book PRIVATE json)
|
||||
# pure type + JSON round-trip; mirror of wav_trim / tab_strip. B-cap writes +
|
||||
# persists it; Phase R (R1/R2) consumes it — no prune logic here.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(owned_manifest STATIC src/owned_manifest.cpp)
|
||||
add_library(owned_manifest STATIC src/core/model/owned_manifest.cpp)
|
||||
target_include_directories(owned_manifest PUBLIC src)
|
||||
target_link_libraries(owned_manifest PRIVATE json)
|
||||
|
||||
@@ -284,7 +284,7 @@ target_link_libraries(owned_manifest PRIVATE json)
|
||||
# pure function; R2/R3 wrap the two ends (folder enumeration + deletion) in the
|
||||
# shell. Standalone — depends only on the standard library.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(prune_reconcile STATIC src/prune_reconcile.cpp)
|
||||
add_library(prune_reconcile STATIC src/core/reclaim/prune_reconcile.cpp)
|
||||
target_include_directories(prune_reconcile PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -295,7 +295,7 @@ target_include_directories(prune_reconcile PUBLIC src)
|
||||
# outside the DAW; the bank_panel footer that draws it and dispatches the
|
||||
# "Prune bank folder" command is DAW-verified. Mirror of mode_switch / tab_strip.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(prune_button STATIC src/prune_button.cpp)
|
||||
add_library(prune_button STATIC src/core/ui/prune_button.cpp)
|
||||
target_include_directories(prune_button PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -306,7 +306,7 @@ target_include_directories(prune_button PUBLIC src)
|
||||
# the DAW; the transport/temp-track/send/file-move recipe stays in capture.cpp.
|
||||
# Depends on bank_model for the pure Sample / SourceMode types.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(realtime_record STATIC src/realtime_record.cpp)
|
||||
add_library(realtime_record STATIC src/core/capture/realtime_record.cpp)
|
||||
target_include_directories(realtime_record PUBLIC src)
|
||||
target_link_libraries(realtime_record PUBLIC bank_model)
|
||||
|
||||
@@ -320,7 +320,7 @@ target_link_libraries(realtime_record PUBLIC bank_model)
|
||||
# patched RIFF/data size fields). The file read/write/truncate I/O stays in the
|
||||
# realtime shell. Depends on peaks for the AudioSample float alias.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(wav_trim STATIC src/wav_trim.cpp)
|
||||
add_library(wav_trim STATIC src/core/capture/wav_trim.cpp)
|
||||
target_include_directories(wav_trim PUBLIC src)
|
||||
target_link_libraries(wav_trim PUBLIC peaks)
|
||||
|
||||
@@ -334,7 +334,7 @@ target_link_libraries(wav_trim PUBLIC peaks)
|
||||
# DAW; the ext-state write/read (persist) and the show-version action (main) are shell.
|
||||
# Depends on the generated header in the build tree (PUBLIC so every consumer sees it).
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(app_version STATIC src/app_version.cpp)
|
||||
add_library(app_version STATIC src/core/version/app_version.cpp)
|
||||
target_include_directories(app_version PUBLIC src ${CMAKE_CURRENT_BINARY_DIR}/generated)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -347,7 +347,7 @@ target_include_directories(app_version PUBLIC src ${CMAKE_CURRENT_BINARY_DIR}/ge
|
||||
# registration stay in the shell (main.cpp / actions.cpp). No dependency on
|
||||
# bank_model — it takes plain strings/values at its boundary.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(provenance STATIC src/provenance.cpp)
|
||||
add_library(provenance STATIC src/core/model/provenance.cpp)
|
||||
target_include_directories(provenance PUBLIC src)
|
||||
target_link_libraries(provenance PRIVATE wire)
|
||||
|
||||
@@ -361,7 +361,7 @@ target_link_libraries(provenance PRIVATE wire)
|
||||
# depend on is unit-tested outside the DAW; the reader lands in a separate artifact,
|
||||
# so the round-trip test is the contract guard. No dependency — plain strings + int64.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(assignment_request STATIC src/assignment_request.cpp)
|
||||
add_library(assignment_request STATIC src/core/wire/assignment_request.cpp)
|
||||
target_include_directories(assignment_request PUBLIC src)
|
||||
target_link_libraries(assignment_request PRIVATE wire)
|
||||
|
||||
@@ -375,7 +375,7 @@ target_link_libraries(assignment_request PRIVATE wire)
|
||||
# matcher.
|
||||
# Linked by BOTH artifacts — the mirror of assignment_request, reversed direction.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(sample_usage STATIC src/sample_usage.cpp)
|
||||
add_library(sample_usage STATIC src/core/wire/sample_usage.cpp)
|
||||
target_include_directories(sample_usage PUBLIC src)
|
||||
target_link_libraries(sample_usage PRIVATE wire)
|
||||
|
||||
@@ -390,7 +390,7 @@ target_link_libraries(sample_usage PRIVATE wire)
|
||||
# initiation (drag_out_win) and the bank_panel gesture hook are DAW-verified. Mirror
|
||||
# of mode_switch.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(drag_out STATIC src/drag_out.cpp)
|
||||
add_library(drag_out STATIC src/core/ui/drag_out.cpp)
|
||||
target_include_directories(drag_out PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -404,13 +404,13 @@ target_include_directories(drag_out PUBLIC src)
|
||||
# parallel byte writer — so the cross-artifact contract cannot drift; links
|
||||
# sample_map (which pulls bank_book/wav_trim/sampler_core transitively) and
|
||||
# NEITHER SDK. The class-ID string derives from the FROZEN UID macros
|
||||
# (src/vst/reasampler_uid.h, SDK-free), channel-selected via the generated
|
||||
# (src/shell/instrument/reasampler_uid.h, SDK-free), channel-selected via the generated
|
||||
# version header — hence the generated include dir. The round-trip test parses
|
||||
# the container and decodes back through the instrument's own reader. Mirror of
|
||||
# assignment_request.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(instrument_drop STATIC src/instrument_drop.cpp)
|
||||
target_include_directories(instrument_drop PUBLIC src src/vst ${CMAKE_CURRENT_BINARY_DIR}/generated)
|
||||
add_library(instrument_drop STATIC src/core/wire/instrument_drop.cpp)
|
||||
target_include_directories(instrument_drop PUBLIC src ${CMAKE_CURRENT_BINARY_DIR}/generated)
|
||||
target_link_libraries(instrument_drop PUBLIC sample_map)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -423,7 +423,7 @@ target_link_libraries(instrument_drop PUBLIC sample_map)
|
||||
# switching the visual direction is a one-file edit. The draw shell (draw_kit) turns
|
||||
# a KitColor into a LICE_pixel at the boundary. Mirror of mode_switch — pure.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(theme STATIC src/theme.cpp)
|
||||
add_library(theme STATIC src/core/ui/theme.cpp)
|
||||
target_include_directories(theme PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -436,7 +436,7 @@ target_include_directories(theme PUBLIC src)
|
||||
# SliderGeometry/ListRowBox avoid the existing ButtonRect/CellRect collisions.
|
||||
# Mirror of prune_button — pure, CTest-covered.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(component_geometry STATIC src/component_geometry.cpp)
|
||||
add_library(component_geometry STATIC src/core/ui/component_geometry.cpp)
|
||||
target_include_directories(component_geometry PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -451,7 +451,7 @@ target_include_directories(component_geometry PUBLIC src)
|
||||
# Main_OnCommand dispatch + kbd_getTextFromCmd query are DAW-verified. Mirror of
|
||||
# mode_switch / prune_button.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(action_bar STATIC src/action_bar.cpp)
|
||||
add_library(action_bar STATIC src/core/ui/action_bar.cpp)
|
||||
target_include_directories(action_bar PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -465,7 +465,7 @@ target_include_directories(action_bar PUBLIC src)
|
||||
# DAW-verified. Reuses prune_button's FooterRect input type. Mirror of action_bar /
|
||||
# mode_switch / prune_button.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(footer_bar STATIC src/footer_bar.cpp)
|
||||
add_library(footer_bar STATIC src/core/ui/footer_bar.cpp)
|
||||
target_include_directories(footer_bar PUBLIC src)
|
||||
target_link_libraries(footer_bar PUBLIC prune_button)
|
||||
|
||||
@@ -478,7 +478,7 @@ target_link_libraries(footer_bar PUBLIC prune_button)
|
||||
# L1-kit draw + TrackPopupMenu popup + NamedCommandLookup/Main_OnCommand dispatch are
|
||||
# DAW-verified. Mirror of prune_button / mode_switch.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(overflow_menu STATIC src/overflow_menu.cpp)
|
||||
add_library(overflow_menu STATIC src/core/ui/overflow_menu.cpp)
|
||||
target_include_directories(overflow_menu PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -490,7 +490,7 @@ target_include_directories(overflow_menu PUBLIC src)
|
||||
# draws disabled buttons in the kit Disabled state. Depends on view_mode_model for the
|
||||
# seed mode-id constants (kArrangeModeId / kDesignModeId — ONE home for the ids).
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(mode_enable STATIC src/mode_enable.cpp)
|
||||
add_library(mode_enable STATIC src/core/ui/mode_enable.cpp)
|
||||
target_include_directories(mode_enable PUBLIC src)
|
||||
target_link_libraries(mode_enable PUBLIC view_mode_model)
|
||||
|
||||
@@ -502,7 +502,7 @@ target_link_libraries(mode_enable PUBLIC view_mode_model)
|
||||
# prefix strip are unit-tested outside the DAW; the bank_panel hover timer + LICE overlay
|
||||
# draw are DAW-verified. Mirror of prune_button / component_geometry.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(tooltip STATIC src/tooltip.cpp)
|
||||
add_library(tooltip STATIC src/core/ui/tooltip.cpp)
|
||||
target_include_directories(tooltip PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -513,7 +513,7 @@ target_include_directories(tooltip PUBLIC src)
|
||||
# edge cases) is unit-tested outside the DAW; the bank_panel kit-text overlay draw is
|
||||
# DAW-verified. Mirror of tooltip's prefix-strip helper — pure, CTest-covered.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(card_meta STATIC src/card_meta.cpp)
|
||||
add_library(card_meta STATIC src/core/ui/card_meta.cpp)
|
||||
target_include_directories(card_meta PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -526,7 +526,7 @@ target_include_directories(card_meta PUBLIC src)
|
||||
# are DAW-verified. Reuses drag_out's PanelClientRect/DragState + bank_grid's CellRect/
|
||||
# GridSpec. Mirror of drag_out::decideGesture / bank_grid.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(card_drag STATIC src/card_drag.cpp)
|
||||
add_library(card_drag STATIC src/core/ui/card_drag.cpp)
|
||||
target_include_directories(card_drag PUBLIC src)
|
||||
target_link_libraries(card_drag PUBLIC drag_out bank_grid)
|
||||
|
||||
@@ -547,8 +547,8 @@ target_link_libraries(card_drag PUBLIC drag_out bank_grid)
|
||||
# because that header drags <windows.h> (via wdltypes.h) into any TU that includes it, which
|
||||
# cannot enter the pure sampler_core. Links only peaks (the AudioSample alias). sampler_core
|
||||
# depends on it (Voice owns two PitchShifters).
|
||||
add_library(pitch_shift STATIC src/vst/pitch_shift.cpp)
|
||||
target_include_directories(pitch_shift PUBLIC src src/vst)
|
||||
add_library(pitch_shift STATIC src/core/instrument/engine/pitch_shift.cpp)
|
||||
target_include_directories(pitch_shift PUBLIC src)
|
||||
target_link_libraries(pitch_shift PUBLIC peaks)
|
||||
|
||||
# velocity_curve (S-VIEW-9) — the pure velocity->amp transfer curve (eval + editing/clamp/inverse
|
||||
@@ -556,11 +556,11 @@ target_link_libraries(pitch_shift PUBLIC peaks)
|
||||
# explicit pixel box, not a Rect) so the engine can depend on it WITHOUT gaining a transitive
|
||||
# dependency on the editor's layout types. sampler_core depends on it (KeyZone carries a
|
||||
# VelocityCurve; Voice::start eval's it). Mirror of pitch_shift's role, one layer below the engine.
|
||||
add_library(velocity_curve STATIC src/vst/velocity_curve.cpp)
|
||||
target_include_directories(velocity_curve PUBLIC src/vst)
|
||||
add_library(velocity_curve STATIC src/core/instrument/engine/velocity_curve.cpp)
|
||||
target_include_directories(velocity_curve PUBLIC src)
|
||||
|
||||
add_library(sampler_core STATIC src/vst/sampler_core.cpp)
|
||||
target_include_directories(sampler_core PUBLIC src src/vst)
|
||||
add_library(sampler_core STATIC src/core/instrument/engine/sampler_core.cpp)
|
||||
target_include_directories(sampler_core PUBLIC src)
|
||||
target_link_libraries(sampler_core PUBLIC peaks pitch_shift velocity_curve)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -671,7 +671,7 @@ add_test(NAME app_version_tests COMMAND app_version_tests)
|
||||
# threaded verbatim or reconstructed from numeric components, at any version, padded or
|
||||
# not — the live suite cannot detect a reconstruct-from-components regression at all.
|
||||
# So: run the SAME version_generated.h.in template through configure_file a second time
|
||||
# with a SYNTHETIC padded version, and compile the SAME src/app_version.cpp against that
|
||||
# with a SYNTHETIC padded version, and compile the SAME src/core/version/app_version.cpp against that
|
||||
# header (include-dir substitution — the canary target never sees the live generated/
|
||||
# dir). The "0.9.01" here is a permanent test fixture, NOT the shipped version (see also
|
||||
# the source-of-truth comment at the top of this file for the live-version invariant); it
|
||||
@@ -688,20 +688,20 @@ function(_configure_padding_canary)
|
||||
# and CMAKE_CURRENT_SOURCE_DIR / CMAKE_CURRENT_BINARY_DIR are inherited read-only.
|
||||
set(REASAMPLER_VERSION "0.9.01")
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/version_generated.h.in
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/core/version/version_generated.h.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/generated_padding_canary/version_generated.h
|
||||
@ONLY)
|
||||
endfunction()
|
||||
_configure_padding_canary()
|
||||
|
||||
# NOTE: app_version_padding_tests deliberately recompiles src/app_version.cpp rather
|
||||
# NOTE: app_version_padding_tests deliberately recompiles src/core/version/app_version.cpp rather
|
||||
# than linking the app_version library target. This is required for the include-dir
|
||||
# substitution to work — the canary needs to see generated_padding_canary/ instead of
|
||||
# the live generated/ dir. If app_version ever gains a link dependency (e.g. a new
|
||||
# pure-module link), the canary target_link_libraries must mirror it here.
|
||||
add_executable(app_version_padding_tests
|
||||
tests/test_app_version_padding.cpp
|
||||
src/app_version.cpp)
|
||||
src/core/version/app_version.cpp)
|
||||
target_include_directories(app_version_padding_tests PRIVATE
|
||||
${CMAKE_CURRENT_BINARY_DIR}/generated_padding_canary src)
|
||||
add_test(NAME app_version_padding_tests COMMAND app_version_padding_tests)
|
||||
@@ -800,19 +800,19 @@ add_test(NAME velocity_curve_tests COMMAND velocity_curve_tests)
|
||||
# reader (mirror of capture_paths/wav_trim). Both are unit-tested outside the DAW;
|
||||
# the VST3 shell (src/vst/*) that draws/routes/invokes is DAW-verified.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(editor_geometry STATIC src/vst/editor_geometry.cpp)
|
||||
target_include_directories(editor_geometry PUBLIC src/vst)
|
||||
add_library(editor_geometry STATIC src/core/instrument/ui/editor_geometry.cpp)
|
||||
target_include_directories(editor_geometry PUBLIC src)
|
||||
|
||||
add_library(bridge_marshal STATIC src/vst/bridge_marshal.cpp)
|
||||
target_include_directories(bridge_marshal PUBLIC src/vst)
|
||||
add_library(bridge_marshal STATIC src/core/instrument/map/bridge_marshal.cpp)
|
||||
target_include_directories(bridge_marshal PUBLIC src)
|
||||
|
||||
# embed_strip (Phase S6) — PURE layout + hit-test for the embedded TCP/MCP strip: the
|
||||
# 128-key span -> zone-segment rects, point -> zone selection, and the level-band fill.
|
||||
# The mirror of editor_geometry (whose Rect + contains() it reuses); unit-tested outside
|
||||
# the DAW, while the embed shell (src/vst/reasampler_embed.cpp) marshals REAPER's embed
|
||||
# the DAW, while the embed shell (src/shell/instrument/reasampler_embed.cpp) marshals REAPER's embed
|
||||
# messages (paint bitmap + mouse coords) into it. Links editor_geometry for the shared Rect.
|
||||
add_library(embed_strip STATIC src/vst/embed_strip.cpp)
|
||||
target_include_directories(embed_strip PUBLIC src/vst)
|
||||
add_library(embed_strip STATIC src/core/instrument/ui/embed_strip.cpp)
|
||||
target_include_directories(embed_strip PUBLIC src)
|
||||
target_link_libraries(embed_strip PUBLIC editor_geometry)
|
||||
|
||||
# sample_map (Phase S4) — PURE mapping logic for the Tier-0 instrument: the live bank
|
||||
@@ -823,8 +823,8 @@ target_link_libraries(embed_strip PUBLIC editor_geometry)
|
||||
# sampler_core (the Keymap/SampleData it yields) — and NEITHER SDK. The VST3 shell
|
||||
# (reasampler_processor.cpp) does the bridge read + file I/O off the audio thread, then
|
||||
# calls these; the process callback stays allocation-free.
|
||||
add_library(sample_map STATIC src/vst/sample_map.cpp)
|
||||
target_include_directories(sample_map PUBLIC src/vst src)
|
||||
add_library(sample_map STATIC src/core/instrument/map/sample_map.cpp)
|
||||
target_include_directories(sample_map PUBLIC src)
|
||||
# master_gain: the v8 component-state master-gain field validates against the pure taper's
|
||||
# linear cap at the (de)serialization boundary (one cap, shared with the knob + the processor).
|
||||
target_link_libraries(sample_map PUBLIC bank_book wav_trim sampler_core master_gain)
|
||||
@@ -834,16 +834,16 @@ target_link_libraries(sample_map PUBLIC bank_book wav_trim sampler_core master_g
|
||||
# grid/tab arithmetic lives here, unit-tested outside the DAW; the editor shell draws each
|
||||
# card's peak thumbnail + name + badge and routes clicks into it. Links editor_geometry for
|
||||
# the shared Rect + contains(). NEITHER SDK.
|
||||
add_library(capture_browser STATIC src/vst/capture_browser.cpp)
|
||||
target_include_directories(capture_browser PUBLIC src/vst)
|
||||
add_library(capture_browser STATIC src/core/instrument/ui/capture_browser.cpp)
|
||||
target_include_directories(capture_browser PUBLIC src)
|
||||
target_link_libraries(capture_browser PUBLIC editor_geometry)
|
||||
|
||||
# keyboard_strip (Phase S10) — PURE key-span<->pixel mapping, root marker, zone-bar rects +
|
||||
# edge-grab hit regions, and the drag-delta note resolver for the capture-first editor's
|
||||
# keyboard strip (single-capture root-set) and the opt-in Zones panel (S10-Z). The mirror of
|
||||
# embed_strip; links editor_geometry for the shared Rect. NEITHER SDK.
|
||||
add_library(keyboard_strip STATIC src/vst/keyboard_strip.cpp)
|
||||
target_include_directories(keyboard_strip PUBLIC src/vst)
|
||||
add_library(keyboard_strip STATIC src/core/instrument/ui/keyboard_strip.cpp)
|
||||
target_include_directories(keyboard_strip PUBLIC src)
|
||||
target_link_libraries(keyboard_strip PUBLIC editor_geometry)
|
||||
|
||||
# waveform_view (Phase S11) — PURE frame<->pixel mapping, marker grab regions, drag-delta
|
||||
@@ -851,8 +851,8 @@ target_link_libraries(keyboard_strip PUBLIC editor_geometry)
|
||||
# (draggable start + loop markers over the picked capture's decoded PCM). The mirror of
|
||||
# keyboard_strip; links editor_geometry for the shared Rect and peaks for the AudioSample
|
||||
# alias the snap scans. NEITHER SDK.
|
||||
add_library(waveform_view STATIC src/vst/waveform_view.cpp)
|
||||
target_include_directories(waveform_view PUBLIC src/vst src)
|
||||
add_library(waveform_view STATIC src/core/instrument/ui/waveform_view.cpp)
|
||||
target_include_directories(waveform_view PUBLIC src)
|
||||
target_link_libraries(waveform_view PUBLIC editor_geometry peaks)
|
||||
|
||||
# bank_sync (Phase S9/S8 reader) — PURE decision logic for the instrument's off-audio-thread
|
||||
@@ -862,8 +862,8 @@ target_link_libraries(waveform_view PUBLIC editor_geometry peaks)
|
||||
# setSelectedSampleId, component-state marker); this owns only the yes/no maths, unit-tested
|
||||
# outside the DAW. Links assignment_request for the decoded AssignmentRequest it consumes.
|
||||
# NEITHER SDK.
|
||||
add_library(bank_sync STATIC src/vst/bank_sync.cpp)
|
||||
target_include_directories(bank_sync PUBLIC src/vst src)
|
||||
add_library(bank_sync STATIC src/core/instrument/map/bank_sync.cpp)
|
||||
target_include_directories(bank_sync PUBLIC src)
|
||||
target_link_libraries(bank_sync PUBLIC assignment_request)
|
||||
target_link_libraries(bank_sync PRIVATE wire)
|
||||
|
||||
@@ -872,15 +872,15 @@ target_link_libraries(bank_sync PRIVATE wire)
|
||||
# thumb-drag<->offset mapping, and the name-substring filter that composes with the bank
|
||||
# filter. The mirror of capture_browser; links capture_browser (for BrowserLayout + the card
|
||||
# metrics/cell rect) which pulls editor_geometry transitively. NEITHER SDK.
|
||||
add_library(browser_scroll STATIC src/vst/browser_scroll.cpp)
|
||||
target_include_directories(browser_scroll PUBLIC src/vst)
|
||||
add_library(browser_scroll STATIC src/core/instrument/ui/browser_scroll.cpp)
|
||||
target_include_directories(browser_scroll PUBLIC src)
|
||||
target_link_libraries(browser_scroll PUBLIC capture_browser)
|
||||
|
||||
# note_entry (Phase S12) — PURE text->clamped-MIDI-note parse for the direct numeric entry of
|
||||
# a zone's low/high/root (decimal integer OR note name under the C4==60 convention, clamped to
|
||||
# [0,127]). No dependency beyond the standard library. NEITHER SDK.
|
||||
add_library(note_entry STATIC src/vst/note_entry.cpp)
|
||||
target_include_directories(note_entry PUBLIC src/vst)
|
||||
add_library(note_entry STATIC src/core/instrument/map/note_entry.cpp)
|
||||
target_include_directories(note_entry PUBLIC src)
|
||||
|
||||
# param_slider (Phase S12 + the S15/S16 control surfaces deferred here) — PURE control-surface
|
||||
# layout + hit-test + normalized value<->pixel mapping for the editor parameter panel (the
|
||||
@@ -888,16 +888,16 @@ target_include_directories(note_entry PUBLIC src/vst)
|
||||
# mirror of keyboard_strip; links editor_geometry for the shared Rect. Deliberately engine-free
|
||||
# (no sampler_core types) — the shell owns the control-id -> param binding + the value DOMAIN
|
||||
# mapping. NEITHER SDK.
|
||||
add_library(param_slider STATIC src/vst/param_slider.cpp)
|
||||
target_include_directories(param_slider PUBLIC src/vst)
|
||||
add_library(param_slider STATIC src/core/instrument/ui/param_slider.cpp)
|
||||
target_include_directories(param_slider PUBLIC src)
|
||||
target_link_libraries(param_slider PUBLIC editor_geometry)
|
||||
|
||||
# trigger_seam (Phase S-VIEW-3) — PURE Trigger-mode frames<->fraction converter for the TRIGGER
|
||||
# SEAM documented in envelope_overlay.h: triggerPlayLength / framesToFadeFraction /
|
||||
# fadeFractionToFrames. Owns the one formula so pack (draw) and unpack (commit) are provably
|
||||
# consistent. No shell/LICE/REAPER types — only <cstdint>. NEITHER SDK.
|
||||
add_library(trigger_seam STATIC src/vst/trigger_seam.cpp)
|
||||
target_include_directories(trigger_seam PUBLIC src/vst)
|
||||
add_library(trigger_seam STATIC src/core/instrument/map/trigger_seam.cpp)
|
||||
target_include_directories(trigger_seam PUBLIC src)
|
||||
|
||||
# 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
|
||||
@@ -905,16 +905,16 @@ target_include_directories(trigger_seam PUBLIC src/vst)
|
||||
# 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)
|
||||
add_library(envelope_overlay STATIC src/core/instrument/ui/envelope_overlay.cpp)
|
||||
target_include_directories(envelope_overlay PUBLIC src)
|
||||
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)
|
||||
add_library(envelope_edit STATIC src/core/instrument/ui/envelope_edit.cpp)
|
||||
target_include_directories(envelope_edit PUBLIC src)
|
||||
target_link_libraries(envelope_edit PUBLIC envelope_overlay)
|
||||
|
||||
# knob_deck (Wave B FB1, r11) — PURE knob-deck layout + hit-test for the recomposed Sample face:
|
||||
@@ -922,23 +922,23 @@ target_link_libraries(envelope_edit PUBLIC envelope_overlay)
|
||||
# toggle), deterministic whole-group wrap, point -> control-id hit-test. The mirror of
|
||||
# action_bar / param_slider; links editor_geometry for the shared Rect. Engine-free — cells and
|
||||
# toggles carry opaque shell-owned control ids. NEITHER SDK.
|
||||
add_library(knob_deck STATIC src/vst/knob_deck.cpp)
|
||||
target_include_directories(knob_deck PUBLIC src/vst)
|
||||
add_library(knob_deck STATIC src/core/instrument/ui/knob_deck.cpp)
|
||||
target_include_directories(knob_deck PUBLIC src)
|
||||
target_link_libraries(knob_deck PUBLIC editor_geometry)
|
||||
|
||||
# curve_popup (Wave B FB1, r11) — PURE centered-sheet geometry for the velocity-curve popup
|
||||
# editor: size clamps (60%/55% of window, 360..520 x 260..380), title row + close button, the
|
||||
# curve-box border rect, and the outside-sheet dismissal test. The mirror of overflow_menu;
|
||||
# links editor_geometry for the shared Rect. NEITHER SDK.
|
||||
add_library(curve_popup STATIC src/vst/curve_popup.cpp)
|
||||
target_include_directories(curve_popup PUBLIC src/vst)
|
||||
add_library(curve_popup STATIC src/core/instrument/ui/curve_popup.cpp)
|
||||
target_include_directories(curve_popup PUBLIC src)
|
||||
target_link_libraries(curve_popup PUBLIC editor_geometry)
|
||||
|
||||
# master_gain (Wave B FB1) — PURE dB<->linear<->knob-taper math for the post-mixer master gain
|
||||
# (-inf..+24 dB; norm 0 = TRUE zero linear). One formula shared by the editor's Gain knob, the
|
||||
# v8 component-state wire cap, and the processor's applied gain. Standard library only. NEITHER SDK.
|
||||
add_library(master_gain STATIC src/vst/master_gain.cpp)
|
||||
target_include_directories(master_gain PUBLIC src/vst)
|
||||
add_library(master_gain STATIC src/core/instrument/engine/master_gain.cpp)
|
||||
target_include_directories(master_gain PUBLIC src)
|
||||
|
||||
add_executable(editor_geometry_tests tests/test_editor_geometry.cpp)
|
||||
target_link_libraries(editor_geometry_tests PRIVATE editor_geometry)
|
||||
@@ -1048,40 +1048,40 @@ set(LICE_SRC
|
||||
)
|
||||
|
||||
add_library(reaper_reasampler MODULE
|
||||
src/main.cpp
|
||||
src/capture.cpp
|
||||
src/capture_realtime.cpp
|
||||
src/realtime_record.cpp
|
||||
src/app/main.cpp
|
||||
src/shell/capture/capture.cpp
|
||||
src/shell/capture/capture_realtime.cpp
|
||||
src/core/capture/realtime_record.cpp
|
||||
src/persist.cpp
|
||||
src/bank_panel.cpp
|
||||
src/draw_kit.cpp
|
||||
src/mode_switch.cpp
|
||||
src/tab_strip.cpp
|
||||
src/insert.cpp
|
||||
src/insert_plan.cpp
|
||||
src/shell/panel/draw_kit.cpp
|
||||
src/core/view/mode_switch.cpp
|
||||
src/core/ui/tab_strip.cpp
|
||||
src/shell/capture/insert.cpp
|
||||
src/core/capture/insert_plan.cpp
|
||||
${LICE_SRC}
|
||||
src/view_mode_model.cpp
|
||||
src/view_tree.cpp
|
||||
src/view.cpp
|
||||
src/track_guid.cpp
|
||||
src/provenance_shell.cpp
|
||||
src/guid_diff.cpp
|
||||
src/lane_keys.cpp
|
||||
src/item_read.cpp
|
||||
src/core/view/view_mode_model.cpp
|
||||
src/core/view/view_tree.cpp
|
||||
src/shell/view/view.cpp
|
||||
src/shell/capture/track_guid.cpp
|
||||
src/shell/capture/provenance_shell.cpp
|
||||
src/core/view/guid_diff.cpp
|
||||
src/core/view/lane_keys.cpp
|
||||
src/shell/capture/item_read.cpp
|
||||
src/actions.cpp
|
||||
src/ingest.cpp
|
||||
src/bank_book.cpp
|
||||
src/owned_manifest.cpp
|
||||
src/drag_out_win.cpp
|
||||
src/instrument_drop_win.cpp
|
||||
src/action_bar.cpp
|
||||
src/footer_bar.cpp
|
||||
src/overflow_menu.cpp
|
||||
src/mode_enable.cpp
|
||||
src/tooltip.cpp
|
||||
src/card_meta.cpp
|
||||
src/card_drag.cpp
|
||||
src/usage_scan.cpp
|
||||
src/core/model/bank_book.cpp
|
||||
src/core/model/owned_manifest.cpp
|
||||
src/shell/actions/drag_out_win.cpp
|
||||
src/shell/actions/instrument_drop_win.cpp
|
||||
src/core/ui/action_bar.cpp
|
||||
src/core/ui/footer_bar.cpp
|
||||
src/core/ui/overflow_menu.cpp
|
||||
src/core/ui/mode_enable.cpp
|
||||
src/core/ui/tooltip.cpp
|
||||
src/core/ui/card_meta.cpp
|
||||
src/core/ui/card_drag.cpp
|
||||
src/shell/persist/usage_scan.cpp
|
||||
)
|
||||
target_link_libraries(reaper_reasampler PRIVATE json wire file_bytes bank_model capture_paths peaks bank_grid mode_switch tab_strip view_mode_model insert_plan render_settings batch_capture tail_control realtime_record bank_book wav_trim owned_manifest prune_reconcile prune_button app_version provenance drag_out instrument_drop theme component_geometry action_bar footer_bar overflow_menu mode_enable tooltip card_meta card_drag assignment_request bank_sync sample_usage)
|
||||
target_include_directories(reaper_reasampler PRIVATE ${SDK_INC} ${WDL_INC})
|
||||
@@ -1186,16 +1186,16 @@ if(WIN32 AND EXISTS "${VST3_SDK}/public.sdk/source/main/pluginfactory.cpp")
|
||||
|
||||
# --- 5b) The VST3 module (loadable .vst3 DLL). -------------------------------
|
||||
add_library(reasampler_vst MODULE
|
||||
src/vst/vst_entry.cpp
|
||||
src/shell/instrument/vst_entry.cpp
|
||||
src/vst/reasampler_processor.cpp
|
||||
src/vst/reasampler_editor.cpp
|
||||
src/vst/reasampler_embed.cpp
|
||||
src/vst/reaper_bridge.cpp
|
||||
src/shell/instrument/reasampler_embed.cpp
|
||||
src/shell/instrument/reaper_bridge.cpp
|
||||
# The Phase L (L1) draw kit — the ONE source of drawing the editor + embed shells
|
||||
# now consume (L3). Compiled into the MODULE (not a static lib) for the same reason
|
||||
# bank_panel does: it is the only kit TU touching LICE, and its cached-font engine
|
||||
# (LICE_CachedFont) needs the LICE_SRC TUs below linked into this artifact.
|
||||
src/draw_kit.cpp
|
||||
src/shell/panel/draw_kit.cpp
|
||||
# SDK module entry — compiled into the module (not the static lib) so the
|
||||
# InitDll/ExitDll dll exports survive the link (see vst3_sdk note above).
|
||||
${VST3_SDK}/public.sdk/source/main/dllmain.cpp
|
||||
@@ -1248,7 +1248,10 @@ if(WIN32 AND EXISTS "${VST3_SDK}/public.sdk/source/main/pluginfactory.cpp")
|
||||
knob_deck curve_popup master_gain sample_usage file_bytes)
|
||||
# SDK_INC gives reaper_vst3_interfaces.h + reaper_plugin_functions.h for the bridge;
|
||||
# WDL_INC gives LICE for the editor. The VST3 SDK headers come from vst3_sdk PUBLIC.
|
||||
target_include_directories(reasampler_vst PRIVATE ${SDK_INC} ${WDL_INC})
|
||||
# src: the Q-W1 rooted include convention ("core/..." / "shell/..."). src/vst: the
|
||||
# two not-yet-split god TUs (reasampler_editor / reasampler_processor, Q-W2v) still
|
||||
# live there and are included flat by the shell TUs.
|
||||
target_include_directories(reasampler_vst PRIVATE src src/vst ${SDK_INC} ${WDL_INC})
|
||||
# A .vst3 is a DLL with a .vst3 extension and no lib-prefix. OUTPUT_NAME is the on-disk
|
||||
# product name, channel-forked (S18): reasampler_9000.vst3 (stable, byte-identical to
|
||||
# pre-S18) / reasampler_9000_beta.vst3 (beta) — driven by REASAMPLER_VST_OUTPUT_NAME set
|
||||
|
||||
Reference in New Issue
Block a user