fix(drop-fx): inject via .vstpreset + TrackFX_SetPreset (vst_chunk is REAPER-framed, raw bytes silently no-op); FX hotspot now prefix tcp.fx*/mcp.fx*/fx_*
This commit is contained in:
+18
-11
@@ -353,16 +353,22 @@ target_include_directories(drag_out PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 2l') Pure instrument_drop library — NO REAPER, NO SWELL, NO VST3 SDK. The S17
|
||||
# drop-and-load blob-construction core: turn the dragged capture id into the
|
||||
# base64 "vst_chunk" the extension injects via TrackFX_SetNamedConfigParm so a
|
||||
# freshly-added ReaSampler 9000 plays that capture. Reuses the instrument's OWN
|
||||
# serializer (sample_map::serializeComponentState) — NOT a parallel byte writer —
|
||||
# so the cross-artifact blob contract cannot drift; links sample_map (which pulls
|
||||
# bank_book/wav_trim/sampler_core transitively) and NEITHER SDK. The round-trip
|
||||
# test decodes back through the instrument's own reader. Mirror of assignment_request.
|
||||
# drop-and-load payload-construction core (S-GA-DropFX revision): turn the dragged
|
||||
# capture id into a Steinberg-format .vstpreset image the shell applies via
|
||||
# TrackFX_SetPreset so a freshly-added ReaSampler 9000 plays that capture (the
|
||||
# former "vst_chunk" named-config-parm write fed REAPER raw component bytes its
|
||||
# VST3 wrapper framing cannot apply — the blank-on-drop regression). Reuses the
|
||||
# instrument's OWN serializer (sample_map::serializeComponentState) — NOT a
|
||||
# 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
|
||||
# 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)
|
||||
target_include_directories(instrument_drop PUBLIC src src/vst ${CMAKE_CURRENT_BINARY_DIR}/generated)
|
||||
target_link_libraries(instrument_drop PUBLIC sample_map)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -654,9 +660,10 @@ add_executable(drag_out_tests tests/test_drag_out.cpp)
|
||||
target_link_libraries(drag_out_tests PRIVATE drag_out)
|
||||
add_test(NAME drag_out_tests COMMAND drag_out_tests)
|
||||
|
||||
# instrument_drop (S17): the drop-and-load vst_chunk blob builder. The round-trip test
|
||||
# decodes the base64 back through the instrument's OWN reader (deserializeComponentState) to
|
||||
# prove the extension injects exactly what setState accepts — the cross-artifact contract guard.
|
||||
# instrument_drop (S17): the drop-and-load .vstpreset payload builder. The round-trip test
|
||||
# parses the preset container and decodes its Comp chunk back through the instrument's OWN
|
||||
# reader (deserializeComponentState) to prove the extension feeds setState exactly what it
|
||||
# accepts — the cross-artifact contract guard.
|
||||
add_executable(instrument_drop_tests tests/test_instrument_drop.cpp)
|
||||
target_link_libraries(instrument_drop_tests PRIVATE instrument_drop)
|
||||
add_test(NAME instrument_drop_tests COMMAND instrument_drop_tests)
|
||||
|
||||
Reference in New Issue
Block a user