S6: embedded TCP/MCP UI via IReaperUIEmbedInterface
Inline keymap/level strip drawn into REAPER's embed bitmap, reusing the LICE idiom. Pure embed_strip layout/hit-test (tested); processor exposes the embed interface off queryInterface and publishes an RT-safe block peak for the level.
This commit is contained in:
+17
-1
@@ -621,6 +621,15 @@ target_include_directories(editor_geometry PUBLIC src/vst)
|
||||
add_library(bridge_marshal STATIC src/vst/bridge_marshal.cpp)
|
||||
target_include_directories(bridge_marshal PUBLIC src/vst)
|
||||
|
||||
# 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
|
||||
# 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)
|
||||
target_link_libraries(embed_strip PUBLIC editor_geometry)
|
||||
|
||||
# sample_map (Phase S4) — PURE mapping logic for the Tier-0 instrument: the live bank
|
||||
# blob -> selected sample (via the SHARED bank_book JSON parse, NOT a second parser),
|
||||
# interleaved->mono downmix (the Tier-0 channel policy), the Tier-0 chromatic keymap
|
||||
@@ -641,6 +650,10 @@ add_executable(bridge_marshal_tests tests/test_bridge_marshal.cpp)
|
||||
target_link_libraries(bridge_marshal_tests PRIVATE bridge_marshal)
|
||||
add_test(NAME bridge_marshal_tests COMMAND bridge_marshal_tests)
|
||||
|
||||
add_executable(embed_strip_tests tests/test_embed_strip.cpp)
|
||||
target_link_libraries(embed_strip_tests PRIVATE embed_strip)
|
||||
add_test(NAME embed_strip_tests COMMAND embed_strip_tests)
|
||||
|
||||
# sample_map: the S4 mapping heart. Links ONLY sample_map (+ its pure deps) — NEITHER
|
||||
# the VST3 SDK nor the REAPER SDK — the same structural plain-data-boundary proof the
|
||||
# sampler_core test enforces.
|
||||
@@ -800,6 +813,7 @@ if(WIN32)
|
||||
src/vst/vst_entry.cpp
|
||||
src/vst/reasampler_processor.cpp
|
||||
src/vst/reasampler_editor.cpp
|
||||
src/vst/reasampler_embed.cpp
|
||||
src/vst/reaper_bridge.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).
|
||||
@@ -813,8 +827,10 @@ if(WIN32)
|
||||
# peaks) transitively. capture_paths: the shared M4 path resolution (resolveBankFile /
|
||||
# projectDirOfRpp) the bridge + processor use. Its PUBLIC include dirs (src, src/vst)
|
||||
# give the shell TUs their headers (ext_keys.h, bank_book.h, sampler_core.h, ...).
|
||||
# embed_strip (S6): the pure inline-strip layout + hit-test the embed shell marshals
|
||||
# into; it links editor_geometry transitively (shared Rect).
|
||||
target_link_libraries(reasampler_vst PRIVATE vst3_sdk editor_geometry bridge_marshal
|
||||
sample_map capture_paths)
|
||||
sample_map capture_paths embed_strip)
|
||||
# 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})
|
||||
|
||||
Reference in New Issue
Block a user