one_shot loop mode

This commit is contained in:
paulfd 2019-08-25 12:45:33 +02:00
parent b15bed8c48
commit 8e8ea4f420

View file

@ -7,6 +7,7 @@
#include "StereoBuffer.h"
#include "StereoSpan.h"
#include "absl/types/span.h"
#include "Defaults.h"
#include <atomic>
#include <memory>
@ -76,9 +77,18 @@ public:
void registerNoteOff(int delay, int channel, int noteNumber, uint8_t velocity [[maybe_unused]])
{
if (state == State::playing && triggerChannel == channel && triggerNumber == noteNumber) {
if (region == nullptr)
return;
if (state != State::playing)
return;
if (triggerChannel == channel && triggerNumber == noteNumber) {
noteIsOff = true;
if (region->loopMode == SfzLoopMode::one_shot)
return;
if (ccState[64] < 63)
egEnvelope.startRelease(delay);
}