diff options
author | David Robillard <d@drobilla.net> | 2011-09-14 22:49:22 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-09-14 22:49:22 +0000 |
commit | 728f510e8c542db2907dcd439a9ab99d07282220 (patch) | |
tree | 6aa01740b1def7a1fa0a32e22fef929bdc231a62 /src/gui/Controls.cpp | |
parent | e18380569bdbe1926be7540f3e2f9ebdf49a8e70 (diff) | |
download | ingen-728f510e8c542db2907dcd439a9ab99d07282220.tar.gz ingen-728f510e8c542db2907dcd439a9ab99d07282220.tar.bz2 ingen-728f510e8c542db2907dcd439a9ab99d07282220.zip |
Support lv2:sampleRate controls (mostly) correctly.
Fix initial control port values (was always 0.0).
Fix numeric values in control window.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3460 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/gui/Controls.cpp')
-rw-r--r-- | src/gui/Controls.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/gui/Controls.cpp b/src/gui/Controls.cpp index 98b1c726..e31c8d52 100644 --- a/src/gui/Controls.cpp +++ b/src/gui/Controls.cpp @@ -152,7 +152,7 @@ SliderControl::init(ControlPanel* panel, SharedPtr<const PortModel> pm) boost::shared_ptr<NodeModel> parent = PtrCast<NodeModel>(_port_model->parent()); if (parent) - parent->port_value_range(_port_model, min, max); + parent->port_value_range(_port_model, min, max, App::instance().sample_rate()); if (pm->is_integer() || pm->is_toggle()) { _slider->set_increments(1, 10); @@ -164,7 +164,8 @@ SliderControl::init(ControlPanel* panel, SharedPtr<const PortModel> pm) pm->signal_property().connect( sigc::mem_fun(this, &SliderControl::port_property_changed)); - _slider->set_range(std::min(min, pm->value().get_float()), std::max(max, pm->value().get_float())); + set_range(std::min(min, pm->value().get_float()), + std::max(max, pm->value().get_float())); set_value(pm->value()); @@ -201,10 +202,8 @@ SliderControl::set_value(const Atom& atom) if (val < lower || val > upper) set_range(min(lower, val), max(lower, val)); _slider->set_value(val); - } - - if (_value_spinner->get_value() != val) _value_spinner->set_value(val); + } _enable_signal = true; } @@ -231,6 +230,7 @@ SliderControl::set_range(float min, float max) max = min + 1.0; _slider->set_range(min, max); + _value_spinner->set_range(min, max); } void |