From 85b8ea6062b8868347525d2f5ea3ef7bb1d9e862 Mon Sep 17 00:00:00 2001 From: gvnnz Date: Thu, 13 Jun 2024 23:35:06 +0200 Subject: [PATCH] Pass keyPress/keyRelease/keyKill event from groups to children --- src/core/rendering/reactor.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/core/rendering/reactor.cpp b/src/core/rendering/reactor.cpp index a790458bb..4db9b190f 100644 --- a/src/core/rendering/reactor.cpp +++ b/src/core/rendering/reactor.cpp @@ -71,6 +71,11 @@ void Reactor::keyPress(ID channelId, float velocity, bool canRecordActions, bool /*velocity=*/0.0f, /*canQuantize=*/false, /*isAnyLoopMode=*/false, /*velocityAsVol=*/false); } + else if (ch.type == ChannelType::GROUP) + { + for (const ID childId : ch.groupChannel->getChildren()) + keyPress(childId, velocity, canRecordActions, canQuantize, currentFrameQuantized); + } m_model.swap(model::SwapType::SOFT); } @@ -103,6 +108,11 @@ void Reactor::keyRelease(ID channelId, bool canRecordActions, Frame currentFrame { releaseSampleChannel(*ch.shared, SamplePlayerMode::SINGLE_BASIC_PAUSE); } + else if (ch.type == ChannelType::GROUP) + { + for (const ID childId : ch.groupChannel->getChildren()) + keyRelease(childId, canRecordActions, currentFrameQuantized); + } m_model.swap(model::SwapType::SOFT); } @@ -136,6 +146,11 @@ void Reactor::keyKill(ID channelId, bool canRecordActions, Frame currentFrameQua killSampleChannel(*ch.shared, mode); } + else if (ch.type == ChannelType::GROUP) + { + for (const ID childId : ch.groupChannel->getChildren()) + keyKill(childId, canRecordActions, currentFrameQuantized); + } m_model.swap(model::SwapType::SOFT); }