From f02ac2f82a0342c3e548a81950734b4bce383b7d Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 29 Jan 2010 07:58:13 +0000 Subject: 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 --- src/client/DeprecatedLoader.cpp | 4 ++-- src/client/NodeModel.cpp | 19 ++++++++++++++++--- src/client/NodeModel.hpp | 1 + 3 files changed, 19 insertions(+), 5 deletions(-) (limited to 'src/client') 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 port, float& min, float& max) const +NodeModel::default_port_value_range(SharedPtr 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 port, float& min, float& max) c } #endif + // TODO: LADSPA support +} + + +void +NodeModel::port_value_range(SharedPtr 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 port, float& min, float& max) const; void port_value_range(SharedPtr port, float& min, float& max) const; // Signals -- cgit v1.2.1