summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/ardour/vst_info_file.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/libs/ardour/vst_info_file.cc b/libs/ardour/vst_info_file.cc
index f74bdca771..693bb6ba9e 100644
--- a/libs/ardour/vst_info_file.cc
+++ b/libs/ardour/vst_info_file.cc
@@ -611,10 +611,22 @@ vstfx_parse_vst_state (VSTState* vstfx)
string with any name*/
char creator[65] = "Unknown\0";
+ char name[65] = "Unknown\0";
AEffect* plugin = vstfx->plugin;
- info->name = strdup (vstfx->handle->name);
+
+ plugin->dispatcher (plugin, effGetEffectName, 0, 0, name, 0);
+
+ if (strlen(name) == 0) {
+ plugin->dispatcher (plugin, effGetProductString, 0, 0, name, 0);
+ }
+
+ if (strlen(name) == 0) {
+ info->name = strdup (vstfx->handle->name);
+ } else {
+ info->name = strdup (name);
+ }
/*If the plugin doesn't bother to implement GetVendorString we will
have pre-stuffed the string with 'Unkown' */