|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #pragma once
- #include <Quantity.hpp>
- #include <engine/Param.hpp>
-
-
- namespace rack {
- namespace engine {
-
-
- struct Module;
-
-
- /** A Quantity that wraps an engine::Param. */
- struct ParamQuantity : Quantity {
- Module* module = NULL;
- int paramId = 0;
-
- /** The minimum allowed value. */
- float minValue = 0.f;
- /** The maximum allowed value. Must be greater than minValue. */
- float maxValue = 1.f;
- /** The initial value. */
- float defaultValue = 0.f;
-
- /** The name of the parameter, using sentence capitalization.
- e.g. "Frequency", "Pulse width", "Alternative mode"
- */
- std::string label;
- /** The numerical unit of measurement appended to the value.
- Unit words and abbreviations should have a space to separate the numerical value from the number (e.g. " semitones", " V", " ms").
- Unit symbols should have no space (e.g. "%", "ยบ").
- */
- std::string unit;
- /** Set to 0 for linear, positive for exponential, negative for logarithmic. */
- float displayBase = 0.f;
- float displayMultiplier = 1.f;
- float displayOffset = 0.f;
- /** An optional one-sentence description of the parameter. */
- std::string description;
-
- Param* getParam();
- /** Request to the engine to smoothly set the value */
- void setSmoothValue(float smoothValue);
- float getSmoothValue();
-
- void setValue(float value) override;
- float getValue() override;
- float getMinValue() override;
- float getMaxValue() override;
- float getDefaultValue() override;
- float getDisplayValue() override;
- void setDisplayValue(float displayValue) override;
- std::string getDisplayValueString() override;
- void setDisplayValueString(std::string s) override;
- int getDisplayPrecision() override;
- std::string getLabel() override;
- std::string getUnit() override;
- };
-
-
- } // namespace engine
- } // namespace rack
|