From faea223b5c610bb7bf6f8a087e05e8f4c545e3b8 Mon Sep 17 00:00:00 2001
From: Hanspeter Portner <dev@open-music-kontrollers.ch>
Date: Sat, 19 Mar 2016 20:14:50 +0100
Subject: [PATCH] Fix crash with lv2:Parameter of Variant:STRING

Add checks for supported variant types in 'build_control_ui'.
---
 gtk2_ardour/generic_pluginui.cc | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/gtk2_ardour/generic_pluginui.cc b/gtk2_ardour/generic_pluginui.cc
index ef2de43..1990d38 100644
--- a/gtk2_ardour/generic_pluginui.cc
+++ b/gtk2_ardour/generic_pluginui.cc
@@ -685,6 +685,13 @@ GenericPluginUI::build_control_ui (const Evoral::Parameter&             param,
 			return control_ui;
 		}
 
+		if (desc.datatype != Variant::INT && desc.datatype != Variant::LONG &&
+				desc.datatype != Variant::FLOAT && desc.datatype != Variant::DOUBLE) {
+
+			/* unsupported variant */
+			return control_ui;
+		}
+
 		/* create the controller */
 
 		if (mcontrol) {
@@ -739,6 +746,14 @@ GenericPluginUI::build_control_ui (const Evoral::Parameter&             param,
 
 	} else if (!is_input) {
 
+		if (desc.datatype != Variant::INT && desc.datatype != Variant::LONG &&
+				desc.datatype != Variant::FLOAT && desc.datatype != Variant::DOUBLE &&
+				desc.datatype != Variant::BOOL) {
+
+			/* unsupported variant */
+			return control_ui;
+		}
+
 		control_ui->display = manage (new EventBox);
 		control_ui->display->set_name ("ParameterValueDisplay");
 
-- 
2.7.3

