From 73608d20913c913a404c627d6bb0724c4eb6969c Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Fri, 19 Mar 2021 14:40:01 +0100 Subject: [PATCH] Add distinct bound permissivity for low and high --- src/sfizz/Defaults.h | 14 ++++++++------ src/sfizz/Opcode.cpp | 8 ++++---- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/sfizz/Defaults.h b/src/sfizz/Defaults.h index 6f8d31f1..f9850390 100644 --- a/src/sfizz/Defaults.h +++ b/src/sfizz/Defaults.h @@ -51,12 +51,14 @@ enum OpcodeFlags : int { kEnforceLowerBound = 1 << 1, kEnforceUpperBound = 1 << 2, kEnforceBounds = kEnforceLowerBound|kEnforceUpperBound, - kPermissiveBounds = 1 << 3, - kNormalizePercent = 1 << 4, - kNormalizeMidi = 1 << 5, - kNormalizeBend = 1 << 6, - kWrapPhase = 1 << 7, - kDb2Mag = 1 << 8, + kPermissiveLowerBound = 1 << 3, + kPermissiveUpperBound = 1 << 4, + kPermissiveBounds = kPermissiveLowerBound|kPermissiveUpperBound, + kNormalizePercent = 1 << 5, + kNormalizeMidi = 1 << 6, + kNormalizeBend = 1 << 7, + kWrapPhase = 1 << 8, + kDb2Mag = 1 << 9, }; template diff --git a/src/sfizz/Opcode.cpp b/src/sfizz/Opcode.cpp index 935498e8..a09301da 100644 --- a/src/sfizz/Opcode.cpp +++ b/src/sfizz/Opcode.cpp @@ -167,12 +167,12 @@ absl::optional readInt_(OpcodeSpec spec, absl::string_view v) if (returnedValue > static_cast(spec.bounds.getEnd())) { if (spec.flags & kEnforceUpperBound) return spec.bounds.getEnd(); - else if (!(spec.flags & kPermissiveBounds)) + else if (!(spec.flags & kPermissiveUpperBound)) return absl::nullopt; } else if (returnedValue < static_cast(spec.bounds.getStart())) { if (spec.flags & kEnforceLowerBound) return spec.bounds.getStart(); - else if (!(spec.flags & kPermissiveBounds)) + else if (!(spec.flags & kPermissiveLowerBound)) return absl::nullopt; } @@ -225,12 +225,12 @@ absl::optional readFloat_(OpcodeSpec spec, absl::string_view v) else if (returnedValue > static_cast(spec.bounds.getEnd())) { if (spec.flags & kEnforceUpperBound) return spec.bounds.getEnd(); - else if (!(spec.flags & kPermissiveBounds)) + else if (!(spec.flags & kPermissiveUpperBound)) return absl::nullopt; } else if (returnedValue < static_cast(spec.bounds.getStart())) { if (spec.flags & kEnforceLowerBound) return spec.bounds.getStart(); - else if (!(spec.flags & kPermissiveBounds)) + else if (!(spec.flags & kPermissiveLowerBound)) return absl::nullopt; }