feat(panel): add Insert as FX — ReaSampler 9000 onto the selected track, preloaded with the focused capture, over the existing instrument-drop body

This commit is contained in:
2026-08-03 16:06:22 -04:00
parent 5042e2709b
commit fcd1ed022c
14 changed files with 323 additions and 18 deletions
+36
View File
@@ -0,0 +1,36 @@
// insert_fx_enable — pure implementation. See insert_fx_enable.h.
#include "core/ui/insert_fx_enable.h"
namespace reasampler::ui {
InsertFxRefusal insertFxRefusal(int focusedCaptureCount, bool trackSelected) {
if (focusedCaptureCount <= 0) return InsertFxRefusal::NoCapture;
if (focusedCaptureCount > 1) return InsertFxRefusal::MultiCapture;
if (!trackSelected) return InsertFxRefusal::NoTrack;
return InsertFxRefusal::None;
}
bool insertFxButtonEnabled(int focusedCaptureCount) {
return insertFxRefusal(focusedCaptureCount, /*trackSelected=*/true) ==
InsertFxRefusal::None;
}
std::string insertFxRefusalMessage(InsertFxRefusal refusal) {
switch (refusal) {
case InsertFxRefusal::None:
return {};
case InsertFxRefusal::NoCapture:
return "select a capture in the bank panel first, then insert it as an "
"instrument on the selected track";
case InsertFxRefusal::MultiCapture:
return "select exactly ONE capture -- a ReaSampler 9000 instance holds one "
"capture, so a multi-capture selection has no single sound to load";
case InsertFxRefusal::NoTrack:
return "select a track first -- the instrument is added to the selected "
"track's FX chain";
}
return {};
}
} // namespace reasampler::ui