summaryrefslogtreecommitdiff
path: root/libs/ardour/lv2_plugin.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-12-19 23:10:36 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2016-12-19 23:10:36 +0000
commit0a167f5c99d60ea64f2680a40dbd9ed744e05a69 (patch)
tree76bdf07183eb203f67b49535c5ff6a28e64abd28 /libs/ardour/lv2_plugin.cc
parent7b9d3f94d4649cb34fcf762eb03282ddbf890025 (diff)
Fix minimum/maximum discovery for integer params (from Hanspeter Portner)
Diffstat (limited to 'libs/ardour/lv2_plugin.cc')
-rw-r--r--libs/ardour/lv2_plugin.cc24
1 files changed, 18 insertions, 6 deletions
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc
index cae4a29911..24fa22dcfd 100644
--- a/libs/ardour/lv2_plugin.cc
+++ b/libs/ardour/lv2_plugin.cc
@@ -1824,14 +1824,26 @@ load_parameter_descriptor(LV2World& world,
if (label) {
desc.label = lilv_node_as_string(label);
}
- if (def && lilv_node_is_float(def)) {
- desc.normal = lilv_node_as_float(def);
+ if (def) {
+ if (lilv_node_is_float(def)) {
+ desc.normal = lilv_node_as_float(def);
+ } else if (lilv_node_is_int(def)) {
+ desc.normal = lilv_node_as_int(def);
+ }
}
- if (minimum && lilv_node_is_float(minimum)) {
- desc.lower = lilv_node_as_float(minimum);
+ if (minimum) {
+ if (lilv_node_is_float(minimum)) {
+ desc.lower = lilv_node_as_float(minimum);
+ } else if (lilv_node_is_int(minimum)) {
+ desc.lower = lilv_node_as_int(minimum);
+ }
}
- if (maximum && lilv_node_is_float(maximum)) {
- desc.upper = lilv_node_as_float(maximum);
+ if (maximum) {
+ if (lilv_node_is_float(maximum)) {
+ desc.upper = lilv_node_as_float(maximum);
+ } else if (lilv_node_is_int(maximum)) {
+ desc.upper = lilv_node_as_int(maximum);
+ }
}
load_parameter_descriptor_units(lworld, desc, units);
desc.datatype = datatype;