Q-W6: registration table (OCP) in main.cpp; bank verbs -> shell/bank_ops(Session&); persist.h + wav_trim + namespaces.h shims deleted; 61/61

capture.h realtime seam split to capture_realtime_shell.h; GetProjExtState grow-loop rehomed to core/wire/ext_state_read; stale persist.cpp/bank_panel.cpp comment refs fixed; CLAUDE.md persist/bank_book/actions bullets updated. Command-id suffixes, display phrases, and undo labels byte-identical.
This commit is contained in:
2026-07-29 13:40:09 -04:00
parent 4831e0e172
commit f3be4d8cce
81 changed files with 970 additions and 1085 deletions
+8 -12
View File
@@ -281,7 +281,7 @@ target_link_libraries(bank_book PRIVATE json)
# itself created, so Phase R prune can tell the bank system's own orphans from
# hand-dropped files. Deliberately DECOUPLED from bank_book — it tracks files
# CREATED, not index membership (sample-remove is not manifest-remove). Small
# pure type + JSON round-trip; mirror of wav_trim / tab_strip. B-cap writes +
# pure type + JSON round-trip; mirror of wav_codec / tab_strip. B-cap writes +
# persists it; Phase R (R1/R2) consumes it — no prune logic here.
# ---------------------------------------------------------------------------
add_library(owned_manifest STATIC src/core/model/owned_manifest.cpp)
@@ -335,18 +335,13 @@ target_link_libraries(capture_realtime PUBLIC bank_model)
# build (formerly hand-rolled in ingest), and the WAV-aware content hashes
# (formerly in capture_paths). The dedup-by-hash and null-test invariants rest
# on this one implementation. File I/O stays in the shells. Depends on peaks
# for the AudioSample float alias.
# `wav_trim` remains as a TRANSITIONAL alias (forwarding header + INTERFACE
# target) so the Q-W2v-owned TUs (sample_map, VST editor/processor) build
# untouched in their parallel wave; retire both once Q-W2v lands.
# for the AudioSample float alias. (The transitional `wav_trim` alias was
# retired in Q-W6 — every includer points here directly.)
# ---------------------------------------------------------------------------
add_library(wav_codec STATIC src/core/capture/wav_codec.cpp)
target_include_directories(wav_codec PUBLIC src)
target_link_libraries(wav_codec PUBLIC peaks)
add_library(wav_trim INTERFACE)
target_link_libraries(wav_trim INTERFACE wav_codec)
# ---------------------------------------------------------------------------
# 2i) Pure app_version library — NO REAPER, NO SWELL. The Phase V (V1) version-identity
# core: re-exports the ONE CMake-sourced version string (via the configure_file'd
@@ -563,7 +558,7 @@ target_link_libraries(card_drag PUBLIC drag_out bank_grid)
# tested hard outside any host. Lives under core/instrument/engine/ but
# links NEITHER SDK — the plain-data boundary is enforced structurally: the test
# target below links only sampler_core (+ its peaks dep for the AudioSample alias,
# the one house precedent wav_trim also relies on). The VST3 shell (shell/instrument/
# the one house precedent wav_codec also relies on). The VST3 shell (shell/instrument/
# reasampler_processor.cpp) marshals MIDI/audio to/from it and is DAW-verified.
# ---------------------------------------------------------------------------
# pitch_shift (S16) — the pure duration-preserving PitchShifter (Preserve-engine DSP core).
@@ -849,13 +844,13 @@ target_link_libraries(embed_strip PUBLIC editor_geometry)
# instrument: the live bank blob -> selected sample (via the SHARED bank_book JSON parse,
# NOT a second parser), interleaved->mono downmix (the channel policy), the Tier-0/zoned
# keymap builds, and the refs/performance resolution. Links the three pure modules it
# composes — bank_book (shared JSON), wav_trim (shared WAV parse), and sampler_core (the
# composes — bank_book (shared JSON), wav_codec (shared WAV parse), and sampler_core (the
# Keymap/SampleData it yields) — and NEITHER SDK. The VST3 shell (reasampler_processor)
# does the bridge read + file I/O off the audio thread, then calls these; the process
# callback stays allocation-free. The ComponentState codec is component_state_io below.
add_library(sample_map STATIC src/core/instrument/map/sample_map.cpp)
target_include_directories(sample_map PUBLIC src)
target_link_libraries(sample_map PUBLIC bank_book wav_trim sampler_core)
target_link_libraries(sample_map PUBLIC bank_book wav_codec sampler_core)
# component_state_io (Q-W2v split of sample_map, T4-13 ≡ T2-07) — the ComponentState
# ENVELOPE + zones-payload binary codec (envelope v1..v11, zones payload v1..v7, every
@@ -1107,6 +1102,7 @@ add_library(reaper_reasampler MODULE
src/shell/persist/session.cpp
src/shell/persist/ext_state_io.cpp
src/shell/persist/prune_fs.cpp
src/shell/bank_ops/bank_ops.cpp
src/shell/panel/panel_audition.cpp
src/shell/panel/panel_bank_ops.cpp
src/shell/panel/panel_drag.cpp
@@ -1283,7 +1279,7 @@ if(WIN32 AND EXISTS "${VST3_SDK}/public.sdk/source/main/pluginfactory.cpp")
)
# editor_geometry + bridge_marshal: the pure spike helpers. sample_map (S4): the pure
# bank->keymap mapping + state (de)ser the processor drives off the audio thread;
# linking it pulls its pure deps (bank_book, wav_trim, sampler_core, bank_model,
# linking it pulls its pure deps (bank_book, wav_codec, sampler_core, bank_model,
# peaks) transitively. capture_paths: the shared M4 path resolution (resolveBankFile /
# projectDirOfRpp) the bridge + processor use. Its PUBLIC include dir (src)
# gives the shell TUs their headers (ext_keys.h, bank_book.h, sampler_core.h, ...).