Q-W6 review follow-ups: drop stale wav_trim clause, fix stale include comment, idempotent action-table clear, reflow ragged comment, align session.h trailing comments

This commit is contained in:
2026-07-29 13:51:35 -04:00
parent f3be4d8cce
commit cd12b97631
9 changed files with 14 additions and 13 deletions
+1 -1
View File
@@ -64,7 +64,7 @@ There is no hot-reload. Copy the built binary into REAPER's `UserPlugins/` folde
- `bank_book` — multi-bank registry: an ordered set of banks each wrapping a `BankIndex`. **Pool privileges (un-deletable/un-renamable/un-evacuable, never zero banks) enforced in-model.** Owns create/rename/reorder/delete of named banks, active-bank id, and index-only move/copy/remove of a sample between banks. The JSON round-trip lives in the sibling `bank_book_json` TU (Q-W5 split; serialize/deserialize via a private static `nameKey` seam) — one model, one codec, same public surface. - `bank_book` — multi-bank registry: an ordered set of banks each wrapping a `BankIndex`. **Pool privileges (un-deletable/un-renamable/un-evacuable, never zero banks) enforced in-model.** Owns create/rename/reorder/delete of named banks, active-bank id, and index-only move/copy/remove of a sample between banks. The JSON round-trip lives in the sibling `bank_book_json` TU (Q-W5 split; serialize/deserialize via a private static `nameKey` seam) — one model, one codec, same public surface.
- `owned_manifest` — the set of project-relative files the capture path itself created, persisted under the `"owned_files"` ext-state key, so the prune path can distinguish the bank system's own orphans from hand-dropped files. - `owned_manifest` — the set of project-relative files the capture path itself created, persisted under the `"owned_files"` ext-state key, so the prune path can distinguish the bank system's own orphans from hand-dropped files.
- `app_version` — REAPER-free version/channel identity: CMake-sourced semver constant, ext-state stamp value, and the full set of channel-derived identity accessors. All channel strings derive from one `REASAMPLER_CHANNEL_IS_BETA` bit; no scattered `#ifdef`s in the shells. - `app_version` — REAPER-free version/channel identity: CMake-sourced semver constant, ext-state stamp value, and the full set of channel-derived identity accessors. All channel strings derive from one `REASAMPLER_CHANNEL_IS_BETA` bit; no scattered `#ifdef`s in the shells.
- `wav_codec` — chunk walker + layout parse + float32 build + size-field patch + content hashes; the single pure RIFF/WAV owner. (`wav_trim` is now a transitional forwarding alias onto `wav_codec`, kept only so the Q-W2v TUs it feeds compile untouched; retire it once that wave lands.) - `wav_codec` — chunk walker + layout parse + float32 build + size-field patch + content hashes; the single pure RIFF/WAV owner (`wav_trim` is retired; `wav_codec` is the sole owner).
- `provenance` — capture-recipe fingerprint: build/encode/compare a `rsprov1` fingerprint of scope, range, tail, rate/channels, track GUIDs, and FX-chain identity. **A thin reproducibility fingerprint — NOT a serialized chain to restore.** - `provenance` — capture-recipe fingerprint: build/encode/compare a `rsprov1` fingerprint of scope, range, tail, rate/channels, track GUIDs, and FX-chain identity. **A thin reproducibility fingerprint — NOT a serialized chain to restore.**
- `prune_reconcile` — pure prune core: `pruneOrphans(present, referenced, owned)` computes `(owned ∩ present) referenced`; the safety-critical "which files are orphans" decision, filesystem-free and hard-tested before any I/O exists. Gains `mergeReferenced(bankRefs, liveInstanceHeldPaths)` (pS-usage) — unions live instance holds into the prune referenced-set so the pure orphan computation includes them. - `prune_reconcile` — pure prune core: `pruneOrphans(present, referenced, owned)` computes `(owned ∩ present) referenced`; the safety-critical "which files are orphans" decision, filesystem-free and hard-tested before any I/O exists. Gains `mergeReferenced(bankRefs, liveInstanceHeldPaths)` (pS-usage) — unions live instance holds into the prune referenced-set so the pure orphan computation includes them.
- `prune_button` — pure layout/hit-test for the `bank_panel` footer Prune button. - `prune_button` — pure layout/hit-test for the `bank_panel` footer Prune button.
+1 -1
View File
@@ -30,7 +30,7 @@
#include <vector> #include <vector>
#include "core/capture/render_settings.h" // captureActionTable #include "core/capture/render_settings.h" // captureActionTable
#include "core/version/app_version.h" // channelCommandId / appVersion #include "core/version/app_version.h" // appVersion
#include "ingest.h" #include "ingest.h"
#include "shell/actions/action_registry.h" // the Q-W6 registration table #include "shell/actions/action_registry.h" // the Q-W6 registration table
#include "shell/actions/bank_actions.h" // multi-bank action family (B3; Q-W4 home) #include "shell/actions/bank_actions.h" // multi-bank action family (B3; Q-W4 home)
+1
View File
@@ -61,6 +61,7 @@ int registerAction(reaper_plugin_info_t* rec, const char* suffix,
void registerActionTable(reaper_plugin_info_t* rec, const ActionTableRow* rows, void registerActionTable(reaper_plugin_info_t* rec, const ActionTableRow* rows,
std::size_t count) { std::size_t count) {
g_table.clear(); // idempotent-by-construction: a re-register never doubles-up rows
for (std::size_t i = 0; i < count; ++i) { for (std::size_t i = 0; i < count; ++i) {
g_table.push_back(TableEntry{rows[i]}); g_table.push_back(TableEntry{rows[i]});
TableEntry& e = g_table.back(); TableEntry& e = g_table.back();
+1 -1
View File
@@ -29,7 +29,7 @@
#include "core/view/lane_keys.h" // view::isOnManualLane — the single managed/manual predicate #include "core/view/lane_keys.h" // view::isOnManualLane — the single managed/manual predicate
#include "core/view/view_mode_model.h" #include "core/view/view_mode_model.h"
#include "shell/persist/session.h" // ReaSamplerSession (owns view() model) #include "shell/persist/session.h" // ReaSamplerSession (owns view() model)
#include "shell/capture/item_read.h" // shared MediaItem* -> GUID + fixed-lane-name reads (D2 W3-B) #include "shell/capture/item_read.h" // shared MediaItem* -> GUID + fixed-lane-name reads (D2 W3-B)
#include "shell/capture/track_guid.h" // shared MediaTrack* -> canonical GUID key #include "shell/capture/track_guid.h" // shared MediaTrack* -> canonical GUID key
#include "shell/panel/panel_window.h" // bankPanelInvalidate — footer toggle repaint #include "shell/panel/panel_window.h" // bankPanelInvalidate — footer toggle repaint
+1 -1
View File
@@ -19,7 +19,7 @@
#include "core/capture/batch_capture.h" // planCaptureUnits / BatchOutcome #include "core/capture/batch_capture.h" // planCaptureUnits / BatchOutcome
#include "core/model/bank_book.h" // BankBook / Bank #include "core/model/bank_book.h" // BankBook / Bank
#include "core/model/provenance.h" // recipe parse/build, fingerprint #include "core/model/provenance.h" // recipe parse/build, fingerprint
#include "shell/persist/session.h" // ReaSamplerSession #include "shell/persist/session.h" // ReaSamplerSession
#include "shell/capture/capture_orchestrator.h" // captureAndIndexOne / renderOffline #include "shell/capture/capture_orchestrator.h" // captureAndIndexOne / renderOffline
#include "shell/capture/provenance_shell.h" // fxChainIdentity* / trackByGuid #include "shell/capture/provenance_shell.h" // fxChainIdentity* / trackByGuid
#include "shell/capture/scope_resolve.h" // ResolvedSource #include "shell/capture/scope_resolve.h" // ResolvedSource
+1 -1
View File
@@ -17,7 +17,7 @@
#include "core/capture/tail_control.h" // TailSetting #include "core/capture/tail_control.h" // TailSetting
#include "core/model/provenance.h" // model::Provenance #include "core/model/provenance.h" // model::Provenance
#include "ingest.h" // ingestAssignActiveInstance #include "ingest.h" // ingestAssignActiveInstance
#include "shell/persist/session.h" // ReaSamplerSession #include "shell/persist/session.h" // ReaSamplerSession
#include "shell/capture/insert.h" // runInsert / InsertRequest #include "shell/capture/insert.h" // runInsert / InsertRequest
#include "shell/capture/realtime_lifecycle.h" // the in-flight realtime state #include "shell/capture/realtime_lifecycle.h" // the in-flight realtime state
+6 -6
View File
@@ -18,7 +18,7 @@
#include "shell/panel/panel_input.h" #include "shell/panel/panel_input.h"
#include "shell/actions/bank_actions.h" // bankPruneCommandId — the footer Prune dispatch (R3) #include "shell/actions/bank_actions.h" // bankPruneCommandId — the footer Prune dispatch (R3)
#include "shell/persist/session.h" // ReaSamplerSession — view/tail reads + mutation #include "shell/persist/session.h" // ReaSamplerSession — view/tail reads + mutation
#include "core/view/view_mode_model.h" // autoTagNewContent / NewItem / AutoTag (D2 Wave 2) #include "core/view/view_mode_model.h" // autoTagNewContent / NewItem / AutoTag (D2 Wave 2)
#include "shell/capture/item_read.h" // itemGuid / itemLaneName — shared item-read seam (D2 W3-B) #include "shell/capture/item_read.h" // itemGuid / itemLaneName — shared item-read seam (D2 W3-B)
#include "shell/capture/track_guid.h" // guidString — canonical track GUID key (D2 Wave 2) #include "shell/capture/track_guid.h" // guidString — canonical track GUID key (D2 Wave 2)
@@ -156,11 +156,11 @@ void enumerateLiveGuids(ReaProject* proj, std::set<std::string>& allGuids,
// membership index. // membership index.
// //
// INTENTIONAL: membership mutation happens OUTSIDE any Undo block. Auto-tag is a // INTENTIONAL: membership mutation happens OUTSIDE any Undo block. Auto-tag is a
// background metadata update (like setting a label), not a destructive project edit. // background metadata update (like setting a label), not a destructive project edit. The
// the persist shell (ext_state_io.cpp) writes it on the next project save alongside the // persist shell (ext_state_io.cpp) writes it on the next project save alongside the bank
// bank and view state, the // and view state, the same way an action-driven tag is persisted. Wrapping this in an Undo
// same way an action-driven tag is persisted. Wrapping this in an Undo block would flood // block would flood the REAPER undo history with a new entry for every timer tick that sees
// the REAPER undo history with a new entry for every timer tick that sees new content. // new content.
// Returns true iff this tick tagged at least one new GUID into a mode — the signal the // Returns true iff this tick tagged at least one new GUID into a mode — the signal the
// caller uses to decide whether to run the lane-minting pass (a track can only newly // caller uses to decide whether to run the lane-minting pass (a track can only newly
// become multi-mode when auto-tag just placed content on it). No tag ⇒ nothing to mint. // become multi-mode when auto-tag just placed content on it). No tag ⇒ nothing to mint.
+1 -1
View File
@@ -20,7 +20,7 @@
#include "shell/panel/panel_state.h" #include "shell/panel/panel_state.h"
#include "shell/panel/panel_layout.h" #include "shell/panel/panel_layout.h"
#include "shell/persist/session.h" // ReaSamplerSession — mode/view reads #include "shell/persist/session.h" // ReaSamplerSession — mode/view reads
#include "core/view/view_mode_model.h" // ViewModeModel — modes()/activeModeId() #include "core/view/view_mode_model.h" // ViewModeModel — modes()/activeModeId()
// Action-trigger buttons (M11): resolve each button's command id at runtime from the // Action-trigger buttons (M11): resolve each button's command id at runtime from the
+1 -1
View File
@@ -18,7 +18,7 @@
#include "shell/panel/panel_state.h" #include "shell/panel/panel_state.h"
#include "shell/panel/draw_kit.h" // kit text()/fillSurface/drawButton/drawWaveform (L1) #include "shell/panel/draw_kit.h" // kit text()/fillSurface/drawButton/drawWaveform (L1)
#include "shell/persist/session.h" // ReaSamplerSession — mode/view/tail reads #include "shell/persist/session.h" // ReaSamplerSession — mode/view/tail reads
#include "core/view/view_mode_model.h" // ViewModeModel / Mode — the footer toggle's model #include "core/view/view_mode_model.h" // ViewModeModel / Mode — the footer toggle's model
namespace reasampler::panel { namespace reasampler::panel {