summaryrefslogtreecommitdiffstats
path: root/src/gui/Controls.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-09-14 22:49:22 +0000
committerDavid Robillard <d@drobilla.net>2011-09-14 22:49:22 +0000
commit728f510e8c542db2907dcd439a9ab99d07282220 (patch)
tree6aa01740b1def7a1fa0a32e22fef929bdc231a62 /src/gui/Controls.cpp
parente18380569bdbe1926be7540f3e2f9ebdf49a8e70 (diff)
downloadingen-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.cpp10
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