clap

CLAP Audio Plugin API
Log | Files | Refs | README | LICENSE

commit 7eef2ed5887b9b03f5b512be349c2dfe0657e106
parent cb28136312600e2a6c23c289670364bf94dd406a
Author: Alexandre BIQUE <bique.alexandre@gmail.com>
Date:   Fri, 21 May 2021 20:22:59 +0200

Invalidate isBeingAdjusted

Diffstat:
Mexamples/host/plugin-param.hh | 3+++
Mexamples/host/plugin-parameters-widget.cc | 27+++++++++++++++++++++++++--
Mexamples/host/plugin-parameters-widget.hh | 2++
3 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/examples/host/plugin-param.hh b/examples/host/plugin-param.hh @@ -39,13 +39,16 @@ public: void beginAdjust() { Q_ASSERT(!is_being_adjusted_); is_being_adjusted_ = true; + isBeingAdjustedChanged(); } void endAdjust() { Q_ASSERT(is_being_adjusted_); is_being_adjusted_ = false; + isBeingAdjustedChanged(); } signals: + void isBeingAdjustedChanged(); void infoChanged(); void valueChanged(); void modulatedValueChanged(); diff --git a/examples/host/plugin-parameters-widget.cc b/examples/host/plugin-parameters-widget.cc @@ -197,9 +197,12 @@ void PluginParametersWidget::connectToParam(PluginParam *param) { currentParam_ = param; connect(param, &PluginParam::infoChanged, this, &PluginParametersWidget::paramInfoChanged); connect(param, &PluginParam::valueChanged, this, &PluginParametersWidget::paramValueChanged); + connect(param, + &PluginParam::isBeingAdjustedChanged, + this, + &PluginParametersWidget::updateParamIsBeingAjustedChanged); - updateParamInfo(); - updateParamValue(); + updateAll(); } void PluginParametersWidget::disconnectFromParam() { @@ -210,7 +213,18 @@ void PluginParametersWidget::disconnectFromParam() { currentParam_, &PluginParam::infoChanged, this, &PluginParametersWidget::paramInfoChanged); disconnect( currentParam_, &PluginParam::valueChanged, this, &PluginParametersWidget::paramValueChanged); + disconnect(currentParam_, + &PluginParam::isBeingAdjustedChanged, + this, + &PluginParametersWidget::updateParamIsBeingAjustedChanged); + + updateAll(); +} + +void PluginParametersWidget::updateAll() { updateParamInfo(); + updateParamValue(); + updateParamIsBeingAjustedChanged(); } void PluginParametersWidget::updateParamInfo() { @@ -277,6 +291,15 @@ void PluginParametersWidget::updateParamInfo() { } } +void PluginParametersWidget::updateParamIsBeingAjustedChanged() { + if (!currentParam_) { + isBeingAdjusted_->setText("-"); + } else { + auto &p = *currentParam_; + isBeingAdjusted_->setText(p.isBeingAdjusted() ? "true" : "false"); + } +} + void PluginParametersWidget::updateParamValue() { if (valueSlider_->isSliderDown()) return; diff --git a/examples/host/plugin-parameters-widget.hh b/examples/host/plugin-parameters-widget.hh @@ -65,8 +65,10 @@ private: void paramValueChanged(); void sliderValueChanged(int newValue); + void updateAll(); void updateParamInfo(); void updateParamValue(); + void updateParamIsBeingAjustedChanged(); static const constexpr int SLIDER_RANGE = 10000;