49class ClapPluginParam :
public QObject
55 const clap_param_info &info,
57 QObject * parent =
nullptr);
59 double value ()
const {
return _value; }
60 void setValue (
double v);
62 double modulation ()
const {
return _modulation; }
63 void setModulation (
double v);
65 double modulatedValue ()
const
68 _info.max_value, std::max (_info.min_value, _value + _modulation));
71 bool isValueValid (
const double v)
const;
73 void printShortInfo (std::ostream &os)
const;
74 void printInfo (std::ostream &os)
const;
76 void setInfo (
const clap_param_info &info)
noexcept { _info = info; }
77 bool isInfoEqualTo (
const clap_param_info &info)
const;
78 bool isInfoCriticallyDifferentTo (
const clap_param_info &info)
const;
79 clap_param_info &info ()
noexcept {
return _info; }
80 const clap_param_info &info ()
const noexcept {
return _info; }
82 bool isBeingAdjusted ()
const noexcept {
return _isBeingAdjusted; }
83 void setIsAdjusting (
bool isAdjusting)
85 if (isAdjusting && !_isBeingAdjusted)
87 else if (!isAdjusting && _isBeingAdjusted)
92 Q_ASSERT (!_isBeingAdjusted);
93 _isBeingAdjusted =
true;
94 Q_EMIT isBeingAdjustedChanged ();
98 Q_ASSERT (_isBeingAdjusted);
99 _isBeingAdjusted =
false;
100 Q_EMIT isBeingAdjustedChanged ();
104 void isBeingAdjustedChanged ();
106 void valueChanged ();
107 void modulatedValueChanged ();
110 bool _isBeingAdjusted =
false;
111 clap_param_info _info;
113 double _modulation = 0;
114 std::unordered_map<int64_t, std::string> _enumEntries;