sync
This commit is contained in:
37
src/ParameterStore.hpp
Normal file
37
src/ParameterStore.hpp
Normal file
@@ -0,0 +1,37 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include <cstdint>
|
||||
|
||||
enum class ParamId : uint8_t {
|
||||
MasterGain,
|
||||
Count
|
||||
};
|
||||
|
||||
struct Param {
|
||||
float val;
|
||||
float min;
|
||||
float max;
|
||||
};
|
||||
|
||||
constexpr size_t PARAM_COUNT = static_cast<size_t>(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<float>(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<int32_t>(get(id)); }
|
||||
|
||||
private:
|
||||
|
||||
std::array<std::atomic<Param>, PARAM_COUNT> values_;
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user