gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

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 }