parameterlocking.h (1061B)
1 #pragma once 2 3 #include <set> 4 #include <string> 5 #include <unordered_set> 6 #include <array> 7 8 #include "parameterregion.h" 9 10 namespace pluginLib 11 { 12 class Parameter; 13 class Controller; 14 15 class ParameterLocking 16 { 17 public: 18 explicit ParameterLocking(Controller& _controller); 19 20 bool lockRegion(uint8_t _part, const std::string& _id); 21 bool unlockRegion(uint8_t _part, const std::string& _id); 22 const std::set<std::string>& getLockedRegions(uint8_t _part) const; 23 bool isRegionLocked(uint8_t _part, const std::string& _id); 24 std::unordered_set<std::string> getLockedParameterNames(uint8_t _part) const; 25 std::unordered_set<const Parameter*> getLockedParameters(uint8_t _part) const; 26 bool isParameterLocked(uint8_t _part, const std::string& _name) const; 27 28 private: 29 void setParametersLocked(const ParameterRegion& _parameterRegion, uint8_t _part, bool _locked) const; 30 31 std::set<std::string>& getLockedRegions(const uint8_t _part) { return m_lockedRegions[_part]; } 32 33 Controller& m_controller; 34 35 std::array<std::set<std::string>,16> m_lockedRegions; 36 }; 37 }