From 8e52a22c227bf0556eda2d24d03bc050a0f591ef Mon Sep 17 00:00:00 2001 From: Sampo Savolainen Date: Wed, 28 Oct 2009 20:21:07 +0000 Subject: [PATCH] Make sure PluginInfo.type is always set plus replace a mindless class cast kludge from PluginInfo::type() with plugin()->get_info()->type git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@5959 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/ardour/ladspa_plugin.h | 2 +- libs/ardour/ardour/vst_plugin.h | 2 +- libs/ardour/audio_unit.cc | 3 ++- libs/ardour/insert.cc | 33 +----------------------------- libs/ardour/ladspa_plugin.cc | 6 ++++++ libs/ardour/lv2_plugin.cc | 1 + 6 files changed, 12 insertions(+), 35 deletions(-) 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()