docs(plan): tick S1/S2 checkboxes; correct bridge-read text to VST3 mechanism
This commit is contained in:
@@ -110,22 +110,21 @@ working hit-test; the VST-host bridge resolves `GetProjExtState` by name and rea
|
|||||||
known `"reasampler"` value. Nothing plays yet — this is the loading/drawing/bridge
|
known `"reasampler"` value. Nothing plays yet — this is the loading/drawing/bridge
|
||||||
proof.
|
proof.
|
||||||
|
|
||||||
- [ ] CMake second target: a separate VST3 module artifact built alongside
|
- [x] CMake second target: a separate VST3 module artifact built alongside
|
||||||
`reaper_reasampler` (Windows VST3 export/bundle wiring; `GetPluginFactory` +
|
`reaper_reasampler` (Windows VST3 export/bundle wiring; `GetPluginFactory` +
|
||||||
`InitDll`/`ExitDll` — **verify exact export names against the vendored SDK**).
|
`InitDll`/`ExitDll` — **verify exact export names against the vendored SDK**).
|
||||||
- [ ] `SingleComponentEffect` skeleton: factory + class registration, `initialize`
|
- [x] `SingleComponentEffect` skeleton: factory + class registration, `initialize`
|
||||||
declaring an event-input bus + an audio-output bus (no audio input),
|
declaring an event-input bus + an audio-output bus (no audio input),
|
||||||
`setupProcessing`, `setActive`, empty `process`. Loads silently in REAPER.
|
`setupProcessing`, `setActive`, empty `process`. Loads silently in REAPER.
|
||||||
- [ ] `IPlugView`↔LICE bridge spike: open a plugin editor window hosting a LICE-drawn
|
- [x] `IPlugView`↔LICE bridge spike: open a plugin editor window hosting a LICE-drawn
|
||||||
surface (window creation/sizing, host→draw/hit-test event routing), reusing the
|
surface (window creation/sizing, host→draw/hit-test event routing), reusing the
|
||||||
`bank_panel` LICE/SWELL competence. **The decision's one real unknown — prove it
|
`bank_panel` LICE/SWELL competence. **The decision's one real unknown — prove it
|
||||||
here.** (VSTGUI is the noted fallback only if this proves gnarlier than the panel
|
here.** (VSTGUI is the noted fallback only if this proves gnarlier than the panel
|
||||||
work suggests.)
|
work suggests.)
|
||||||
- [ ] Bridge read spike: resolve `GetProjExtState`/`EnumProjExtState` by name over the
|
- [x] Bridge read spike: resolve `GetProjExtState`/`EnumProjExtState` by name via
|
||||||
host callback (`hostcb` opcode `0xdeadf00d`), fetch host project context
|
`IReaperHostApplication::getReaperApi` (host project context via `getReaperParent(3)`)
|
||||||
(`0xdeadf00e`), and read a known `"reasampler"` ext-state value. **Verify opcodes +
|
from `reaper_vst3_interfaces.h`, and read a known `"reasampler"` ext-state value.
|
||||||
marshalling against `reaper_plugin.h` / `video_processor.h` /
|
(The `0xdeadf00d`/`0xdeadf00e` opcodes are the VST2 path — verified not applicable here.)
|
||||||
`reaper_plugin_functions.h`.**
|
|
||||||
|
|
||||||
## S2 — `Sample` intrinsic fields (root note + loop points; in the *extension*)
|
## S2 — `Sample` intrinsic fields (root note + loop points; in the *extension*)
|
||||||
**Goal:** Add the two bank-intrinsic seam fields to `Sample` — **root note** (MIDI
|
**Goal:** Add the two bank-intrinsic seam fields to `Sample` — **root note** (MIDI
|
||||||
@@ -143,13 +142,13 @@ additive).
|
|||||||
**Depends on:** nothing in Phase S (extension-only; can land before or in parallel
|
**Depends on:** nothing in Phase S (extension-only; can land before or in parallel
|
||||||
with S1).
|
with S1).
|
||||||
|
|
||||||
- [ ] Add `rootNote` (optional MIDI note) + `loopStart`/`loopEnd` (optional
|
- [x] Add `rootNote` (optional MIDI note) + `loopStart`/`loopEnd` (optional
|
||||||
sample-accurate loop points) to `Sample`; JSON serialize/deserialize with clean
|
sample-accurate loop points) to `Sample`; JSON serialize/deserialize with clean
|
||||||
defaults for samples lacking them (additive, backward-compatible — mirror of how
|
defaults for samples lacking them (additive, backward-compatible — mirror of how
|
||||||
`provenance` was added).
|
`provenance` was added).
|
||||||
- [ ] Populate the fields on capture where derivable (root note) / settable (loop
|
- [x] Populate the fields on capture where derivable (root note) / settable (loop
|
||||||
points); leave them cleanly empty otherwise. No existing `Sample` field changes.
|
points); leave them cleanly empty otherwise. No existing `Sample` field changes.
|
||||||
- [ ] Tests: full round-trip lossless including the new fields; a legacy `Sample`
|
- [x] Tests: full round-trip lossless including the new fields; a legacy `Sample`
|
||||||
JSON (no new fields) parses with defaults and re-serializes without loss; additive
|
JSON (no new fields) parses with defaults and re-serializes without loss; additive
|
||||||
invariant (no change to existing fields, dedup, tier, or `BankIndex` behavior).
|
invariant (no change to existing fields, dedup, tier, or `BankIndex` behavior).
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user