diff options
author | David Robillard <d@drobilla.net> | 2010-01-29 07:58:13 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2010-01-29 07:58:13 +0000 |
commit | f02ac2f82a0342c3e548a81950734b4bce383b7d (patch) | |
tree | 06a51f5be2d41bdd8a52f1a6f8888f5f4d3db5f5 /src/client | |
parent | 96613df7830699dbbfb5c2d9fe3ebdb0598e6aca (diff) | |
download | ingen-f02ac2f82a0342c3e548a81950734b4bce383b7d.tar.gz ingen-f02ac2f82a0342c3e548a81950734b4bce383b7d.tar.bz2 ingen-f02ac2f82a0342c3e548a81950734b4bce383b7d.zip |
Improved/quicker/easier handling of control port ranges.
* Add "Set minimum to current value", "Set maximum to current value",
and "Reset range" to control port context menu.
* Only serialise properties (e.g. lv2:minimum) if they differ from
the meta object's (prototype's, e.g. plugin) value.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2395 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/client')
-rw-r--r-- | src/client/DeprecatedLoader.cpp | 4 | ||||
-rw-r--r-- | src/client/NodeModel.cpp | 19 | ||||
-rw-r--r-- | src/client/NodeModel.hpp | 1 |
3 files changed, 19 insertions, 5 deletions
diff --git a/src/client/DeprecatedLoader.cpp b/src/client/DeprecatedLoader.cpp index 0b3243d1..32dd8059 100644 --- a/src/client/DeprecatedLoader.cpp +++ b/src/client/DeprecatedLoader.cpp @@ -152,9 +152,9 @@ DeprecatedLoader::add_variable(GraphObject::Properties& data, string old_key, st { string key = ""; if (old_key == "module-x") - key = "ingen-ui:canvas-x"; + key = "ingenui:canvas-x"; else if (old_key == "module-y") - key = "ingen-ui:canvas-y"; + key = "ingenui:canvas-y"; if (key != "") { // FIXME: should this overwrite existing values? diff --git a/src/client/NodeModel.cpp b/src/client/NodeModel.cpp index 07bdccf8..ea419e3a 100644 --- a/src/client/NodeModel.cpp +++ b/src/client/NodeModel.cpp @@ -170,12 +170,14 @@ NodeModel::port(uint32_t index) const void -NodeModel::port_value_range(SharedPtr<PortModel> port, float& min, float& max) const +NodeModel::default_port_value_range(SharedPtr<PortModel> port, float& min, float& max) const { - assert(port->parent().get() == this); + // Default control values + min = 0.0; + max = 1.0; + // Get range from client-side LV2 data #ifdef HAVE_SLV2 - // Plugin value first if (_plugin && _plugin->type() == PluginModel::LV2) { if (!_min_values) { @@ -196,6 +198,17 @@ NodeModel::port_value_range(SharedPtr<PortModel> port, float& min, float& max) c } #endif + // TODO: LADSPA support +} + + +void +NodeModel::port_value_range(SharedPtr<PortModel> port, float& min, float& max) const +{ + assert(port->parent().get() == this); + + default_port_value_range(port, min, max); + // Possibly overriden const Atom& min_atom = port->get_property("lv2:minimum"); const Atom& max_atom = port->get_property("lv2:maximum"); diff --git a/src/client/NodeModel.hpp b/src/client/NodeModel.hpp index b1dbb616..3c150700 100644 --- a/src/client/NodeModel.hpp +++ b/src/client/NodeModel.hpp @@ -60,6 +60,7 @@ public: uint32_t num_ports() const { return _ports.size(); } const Ports& ports() const { return _ports; } + void default_port_value_range(SharedPtr<PortModel> port, float& min, float& max) const; void port_value_range(SharedPtr<PortModel> port, float& min, float& max) const; // Signals |