Don't strip suffixes twice from peakfile names, otherwise source names like fred...
[ardour.git] / libs / ardour / lv2_plugin.cc
index 368c521d0b9a093f9e4d39593e7e9db96305a067..be4ecf87afbd5ebc20701f83cc062a3fc9a7326d 100644 (file)
@@ -83,6 +83,15 @@ LV2Plugin::init (LV2World& world, SLV2Plugin plugin, nframes_t rate)
        _latency_control_port = 0;
        _was_activated = false;
 
+       _instance_access_feature.URI = "http://lv2plug.in/ns/ext/instance-access";
+       _data_access_feature.URI = "http://lv2plug.in/ns/ext/data-access";
+
+       _features = (LV2_Feature**)malloc(sizeof(LV2_Feature*) * 4);
+       _features[0] = &_instance_access_feature;
+       _features[1] = &_data_access_feature;
+       _features[2] = _uri_map.feature();
+       _features[3] = NULL;
+
        _instance = slv2_plugin_instantiate(plugin, rate, _features);
        _name = slv2_plugin_get_name(plugin);
        assert(_name);
@@ -93,6 +102,10 @@ LV2Plugin::init (LV2World& world, SLV2Plugin plugin, nframes_t rate)
                throw failed_constructor();
        }
 
+       _instance_access_feature.data = (void*)_instance->lv2_handle;
+       _data_access_extension_data.extension_data = _instance->lv2_descriptor->extension_data;
+       _data_access_feature.data = &_data_access_extension_data;
+
        if (slv2_plugin_has_feature(plugin, world.in_place_broken)) {
                error << string_compose(
                                _("LV2: \"%1\" cannot be used, since it cannot do inplace processing"),
@@ -102,19 +115,6 @@ LV2Plugin::init (LV2World& world, SLV2Plugin plugin, nframes_t rate)
                throw failed_constructor();
        }
 
-       _instance_access_feature.URI = "http://lv2plug.in/ns/ext/instance-access";
-       _instance_access_feature.data = (void*)_instance->lv2_handle;
-
-       _data_access_extension_data.extension_data = _instance->lv2_descriptor->extension_data;
-       _data_access_feature.URI = "http://lv2plug.in/ns/ext/data-access";
-       _data_access_feature.data = &_data_access_extension_data;
-
-       _features = (LV2_Feature**)malloc(sizeof(LV2_Feature*) * 4);
-       _features[0] = &_instance_access_feature;
-       _features[1] = &_data_access_feature;
-       _features[2] = _uri_map.feature();
-       _features[3] = NULL;
-
        _sample_rate = rate;
 
        const uint32_t num_ports = slv2_plugin_get_num_ports(plugin);
@@ -680,6 +680,7 @@ LV2PluginInfo::LV2PluginInfo (void* lv2_world, void* slv2_plugin)
        : _lv2_world(lv2_world)
        , _slv2_plugin(slv2_plugin)
 {
+        type = ARDOUR::LV2;
 }
 
 LV2PluginInfo::~LV2PluginInfo()