diff --git a/src/sfizz/Opcode.h b/src/sfizz/Opcode.h index 754c0d9e..cd31c8c6 100644 --- a/src/sfizz/Opcode.h +++ b/src/sfizz/Opcode.h @@ -47,6 +47,8 @@ enum OpcodeScope { kOpcodeScopeGlobal, //! control scope kOpcodeScopeControl, + //! Master scope + kOpcodeScopeMaster, //! group scope kOpcodeScopeGroup, //! region scope diff --git a/src/sfizz/Synth.cpp b/src/sfizz/Synth.cpp index 0eec9944..bc2177b5 100644 --- a/src/sfizz/Synth.cpp +++ b/src/sfizz/Synth.cpp @@ -74,7 +74,7 @@ void sfz::Synth::onParseFullBlock(const std::string& header, const std::vectorgetParent()); else newRegionSet(currentSet); - lastHeader = Header::Group; + lastHeader = OpcodeScope::kOpcodeScopeGroup; handleGroupOpcodes(members, masterOpcodes); numGroups++; break; @@ -175,6 +175,7 @@ void sfz::Synth::clear() for (auto& list : ccActivationLists) list.clear(); + lastHeader = OpcodeScope::kOpcodeScopeGlobal; sets.clear(); sets.emplace_back(new RegionSet); currentSet = sets.front().get(); diff --git a/src/sfizz/Synth.h b/src/sfizz/Synth.h index 28bd72ad..3c08e954 100644 --- a/src/sfizz/Synth.h +++ b/src/sfizz/Synth.h @@ -707,9 +707,8 @@ private: std::vector regions; std::vector voices; // These are more general "groups" than sfz and encapsulates the full hierarchy - enum class Header { Global, Master, Group }; RegionSet* currentSet; - Header lastHeader { Header::Global }; + OpcodeScope lastHeader { OpcodeScope::kOpcodeScopeGlobal }; std::vector sets; // These are the `group=` groups where you can off voices std::vector polyphonyGroups;