#pragma once #include #include enum class ParamId : uint8_t { MasterGain, Count }; struct Param { float val; float min; float max; }; constexpr size_t PARAM_COUNT = static_cast(ParamId::Count); class ParameterStore { public: ParameterStore(); ~ParameterStore() = default; void set(ParamId id, float value); void set(ParamId id, int32_t value) { set(id, static_cast(value)); } void set(EnvelopeId id, float depth, float a, float d, float s, float r); float get(ParamId id) const; int32_t getInt(ParamId id) const { return static_cast(get(id)); } private: std::array, PARAM_COUNT> values_; };