diff --git a/libs/ardour/ardour/ladspa_plugin.h b/libs/ardour/ardour/ladspa_plugin.h index 545806e437..18314c9ca3 100644 --- a/libs/ardour/ardour/ladspa_plugin.h +++ b/libs/ardour/ardour/ladspa_plugin.h @@ -134,7 +134,7 @@ class LadspaPlugin : public ARDOUR::Plugin class LadspaPluginInfo : public PluginInfo { public: - LadspaPluginInfo () { }; + LadspaPluginInfo (); ~LadspaPluginInfo () { }; PluginPtr load (Session& session); diff --git a/libs/ardour/ardour/vst_plugin.h b/libs/ardour/ardour/vst_plugin.h index d6363d696b..4240dd0fe5 100644 --- a/libs/ardour/ardour/vst_plugin.h +++ b/libs/ardour/ardour/vst_plugin.h @@ -103,7 +103,7 @@ class VSTPlugin : public ARDOUR::Plugin class VSTPluginInfo : public PluginInfo { public: - VSTPluginInfo () {} + VSTPluginInfo (); ~VSTPluginInfo () {} PluginPtr load (Session& session); diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc index 0cd21b90ee..5102604066 100644 --- a/libs/ardour/audio_unit.cc +++ b/libs/ardour/audio_unit.cc @@ -1472,11 +1472,12 @@ AUPlugin::has_editor () const AUPluginInfo::AUPluginInfo (boost::shared_ptr d) : descriptor (d) { - + type = ARDOUR::AudioUnit; } AUPluginInfo::~AUPluginInfo () { + type = ARDOUR::AudioUnit; } PluginPtr diff --git a/libs/ardour/insert.cc b/libs/ardour/insert.cc index 721c61f593..03b56e5167 100644 --- a/libs/ardour/insert.cc +++ b/libs/ardour/insert.cc @@ -850,38 +850,7 @@ PluginInsert::latency() ARDOUR::PluginType PluginInsert::type () { - boost::shared_ptr lp; -#ifdef VST_SUPPORT - boost::shared_ptr vp; -#endif -#ifdef HAVE_AUDIOUNITS - boost::shared_ptr ap; -#endif -#ifdef HAVE_LV2 - boost::shared_ptr lv2p; -#endif - - PluginPtr other = plugin (); - - if ((lp = boost::dynamic_pointer_cast (other)) != 0) { - return ARDOUR::LADSPA; -#ifdef VST_SUPPORT - } else if ((vp = boost::dynamic_pointer_cast (other)) != 0) { - return ARDOUR::VST; -#endif -#ifdef HAVE_AUDIOUNITS - } else if ((ap = boost::dynamic_pointer_cast (other)) != 0) { - return ARDOUR::AudioUnit; -#endif -#ifdef HAVE_LV2 - } else if ((lv2p = boost::dynamic_pointer_cast (other)) != 0) { - return ARDOUR::LV2; -#endif - } else { - error << "Unknown plugin type" << endmsg; - /* NOT REACHED */ - return (ARDOUR::PluginType) 0; - } + return plugin()->get_info()->type; } /*************************************************************** diff --git a/libs/ardour/ladspa_plugin.cc b/libs/ardour/ladspa_plugin.cc index 8d81519050..16a87888b5 100644 --- a/libs/ardour/ladspa_plugin.cc +++ b/libs/ardour/ladspa_plugin.cc @@ -669,3 +669,9 @@ LadspaPluginInfo::load (Session& session) return PluginPtr ((Plugin*) 0); } } + + +LadspaPluginInfo::LadspaPluginInfo() +{ + type = ARDOUR::LADSPA; +} diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc index e162b8db70..f2fbefd7cc 100644 --- a/libs/ardour/lv2_plugin.cc +++ b/libs/ardour/lv2_plugin.cc @@ -586,6 +586,7 @@ LV2PluginInfo::LV2PluginInfo (void* lv2_world, void* slv2_plugin) : _lv2_world(lv2_world) , _slv2_plugin(slv2_plugin) { + type = ARDOUR::LV2; } LV2PluginInfo::~LV2PluginInfo()