summaryrefslogtreecommitdiffstats
path: root/src/gui/Controls.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-03-19 20:16:46 +0000
committerDavid Robillard <d@drobilla.net>2012-03-19 20:16:46 +0000
commit254b434f0a79fea54bd963e8ff2e845a5b0cd3a6 (patch)
treeddf849fc5b64d1096846c28c1f1a742f54c3adff /src/gui/Controls.cpp
parentbc3afd8380d59c750c8f8e9bf1ed1b8d4a6826e9 (diff)
downloadingen-254b434f0a79fea54bd963e8ff2e845a5b0cd3a6.tar.gz
ingen-254b434f0a79fea54bd963e8ff2e845a5b0cd3a6.tar.bz2
ingen-254b434f0a79fea54bd963e8ff2e845a5b0cd3a6.zip
Partially functioning communication between Ingen LV2 plugin and UI.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4078 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/gui/Controls.cpp')
-rw-r--r--src/gui/Controls.cpp23
1 files changed, 10 insertions, 13 deletions
diff --git a/src/gui/Controls.cpp b/src/gui/Controls.cpp
index c3fe2658..87903f8e 100644
--- a/src/gui/Controls.cpp
+++ b/src/gui/Controls.cpp
@@ -218,9 +218,9 @@ SliderControl::port_property_changed(const URI& key, const Atom& value)
_enable_signal = false;
const Shared::URIs& uris = _app->uris();
- if (key == uris.lv2_minimum && value.type() == Atom::FLOAT)
+ if (key == uris.lv2_minimum && value.type() == uris.forge.Float)
set_range(value.get_float(), _slider->get_adjustment()->get_upper());
- else if (key == uris.lv2_maximum && value.type() == Atom::FLOAT)
+ else if (key == uris.lv2_maximum && value.type() == uris.forge.Float)
set_range(_slider->get_adjustment()->get_lower(), value.get_float());
_enable_signal = true;
@@ -320,18 +320,15 @@ ToggleControl::init(App& app, ControlPanel* panel, SharedPtr<const PortModel> pm
void
ToggleControl::set_value(const Atom& val)
{
- bool enable = false;
- switch (val.type()) {
- case Atom::FLOAT:
+ const Shared::URIs& uris = _app->uris();
+ bool enable = false;
+ if (val.type() == uris.forge.Float) {
enable = (val.get_float() != 0.0f);
- break;
- case Atom::INT:
+ } else if (val.type() == uris.forge.Int) {
enable = (val.get_int32() != 0);
- break;
- case Atom::BOOL:
+ } else if (val.type() == uris.forge.Bool) {
enable = (val.get_bool());
- break;
- default:
+ } else {
error << "Unsupported value type for toggle control" << endl;
}
@@ -380,7 +377,7 @@ void
StringControl::set_value(const Atom& val)
{
_enable_signal = false;
- if (val.type() == Atom::STRING)
+ if (val.type() == _app->forge().String)
_entry->set_text(val.get_string());
else
error << "Non-string value for string port " << _port_model->path() << endl;
@@ -393,7 +390,7 @@ StringControl::activated()
if (_enable_signal)
_control_panel->value_changed_atom(
_port_model,
- _app->forge().make(_entry->get_text().c_str()));
+ _app->forge().alloc(_entry->get_text().c_str()));
}
} // namespace GUI