Revision | 1d50303a069f8591a91a9bc822ffdaf54a9905bb (tree) |
---|---|
Time | 2019-09-05 17:09:23 |
Author | Starg <starg@user...> |
Commiter | Starg |
[sfz] Add support for <master> header
@@ -864,6 +864,7 @@ enum class HeaderKind | ||
864 | 864 | { |
865 | 865 | Control, |
866 | 866 | Global, |
867 | + Master, | |
867 | 868 | Group, |
868 | 869 | Region |
869 | 870 | }; |
@@ -1086,6 +1087,7 @@ private: | ||
1086 | 1087 | {"control"sv, HeaderKind::Control}, |
1087 | 1088 | {"global"sv, HeaderKind::Global}, |
1088 | 1089 | {"group"sv, HeaderKind::Group}, |
1090 | + {"master"sv, HeaderKind::Master}, | |
1089 | 1091 | {"region"sv, HeaderKind::Region} |
1090 | 1092 | }; |
1091 | 1093 |
@@ -1709,6 +1711,7 @@ private: | ||
1709 | 1711 | std::vector<Section> flatSections; |
1710 | 1712 | std::vector<OpCodeAndValue> controlOpCodes; |
1711 | 1713 | std::vector<OpCodeAndValue> globalOpCodes; |
1714 | + std::vector<OpCodeAndValue> masterOpCodes; | |
1712 | 1715 | std::vector<OpCodeAndValue> groupOpCodes; |
1713 | 1716 | |
1714 | 1717 | for (auto&& i : sections) |
@@ -1721,6 +1724,13 @@ private: | ||
1721 | 1724 | |
1722 | 1725 | case HeaderKind::Global: |
1723 | 1726 | globalOpCodes = i.OpCodes; |
1727 | + masterOpCodes.clear(); | |
1728 | + groupOpCodes.clear(); | |
1729 | + break; | |
1730 | + | |
1731 | + case HeaderKind::Master: | |
1732 | + masterOpCodes = i.OpCodes; | |
1733 | + groupOpCodes.clear(); | |
1724 | 1734 | break; |
1725 | 1735 | |
1726 | 1736 | case HeaderKind::Group: |
@@ -1733,9 +1743,10 @@ private: | ||
1733 | 1743 | newSection.HeaderLocation = i.HeaderLocation; |
1734 | 1744 | auto& opCodes = newSection.OpCodes; |
1735 | 1745 | opCodes.clear(); |
1736 | - opCodes.reserve(controlOpCodes.size() + globalOpCodes.size() + groupOpCodes.size() + i.OpCodes.size()); | |
1746 | + opCodes.reserve(controlOpCodes.size() + globalOpCodes.size() + masterOpCodes.size() + groupOpCodes.size() + i.OpCodes.size()); | |
1737 | 1747 | opCodes.insert(opCodes.end(), controlOpCodes.begin(), controlOpCodes.end()); |
1738 | 1748 | opCodes.insert(opCodes.end(), globalOpCodes.begin(), globalOpCodes.end()); |
1749 | + opCodes.insert(opCodes.end(), masterOpCodes.begin(), masterOpCodes.end()); | |
1739 | 1750 | opCodes.insert(opCodes.end(), groupOpCodes.begin(), groupOpCodes.end()); |
1740 | 1751 | opCodes.insert(opCodes.end(), i.OpCodes.begin(), i.OpCodes.end()); |
1741 | 1752 | break; |