C++ API Reference RNBO: common/RNBO_ParameterInterface.h Source File

RNBO: common/RNBO_ParameterInterface.h Source File

1 #ifndef RNBO_ParameterInterface_h
2 #define RNBO_ParameterInterface_h
3 
4 #include "RNBO_Types.h"
5 #include "RNBO_Math.h"
6 
7 namespace RNBO {
8 
10 
11  protected:
12  ~ParameterInterface() { }
13 
14  public:
15  virtual ParameterIndex getNumParameters() const = 0;
16  virtual ConstCharPointer getParameterName(ParameterIndex index) const = 0;
17  virtual ConstCharPointer getParameterId(ParameterIndex index) const = 0;
18  virtual void getParameterInfo(ParameterIndex index, ParameterInfo* info) const = 0;
19 
20  virtual ParameterValue getParameterValue(ParameterIndex index) = 0;
21  virtual void setParameterValue(ParameterIndex index, ParameterValue value, MillisecondTime time = RNBOTimeNow) = 0;
22 
23  virtual ParameterValue getParameterNormalized(ParameterIndex index) {
24  return convertToNormalizedParameterValue(index, getParameterValue(index));
25  }
26 
27  virtual void setParameterValueNormalized(ParameterIndex index, ParameterValue normalizedValue, MillisecondTime time = RNBOTimeNow) {
28  setParameterValue(index, convertFromNormalizedParameterValue(index, normalizedValue), time);
29  }
30 
31  virtual ParameterValue convertToNormalizedParameterValue(ParameterIndex index, ParameterValue value) const = 0;
32  virtual ParameterValue convertFromNormalizedParameterValue(ParameterIndex index, ParameterValue normalizedValue) const = 0;
33  virtual ParameterValue constrainParameterValue(ParameterIndex, ParameterValue value) const { return value; }
34  };
35 
36 } // namespace RNBO
37 
38 #endif // RNBO_ParameterInterface_h