Make sure PluginInfo.type is always set plus replace a mindless class cast kludge...
authorSampo Savolainen <v2@iki.fi>
Wed, 28 Oct 2009 20:21:07 +0000 (20:21 +0000)
committerSampo Savolainen <v2@iki.fi>
Wed, 28 Oct 2009 20:21:07 +0000 (20:21 +0000)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@5959 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/ardour/ladspa_plugin.h
libs/ardour/ardour/vst_plugin.h
libs/ardour/audio_unit.cc
libs/ardour/insert.cc
libs/ardour/ladspa_plugin.cc
libs/ardour/lv2_plugin.cc

index 545806e4379ce3724356300c3b409c17ab40d0a8..18314c9ca3b03022023c710fedc8c397bd6bea5a 100644 (file)
@@ -134,7 +134,7 @@ class LadspaPlugin : public ARDOUR::Plugin
 
 class LadspaPluginInfo : public PluginInfo {
   public:      
-       LadspaPluginInfo () { };
+       LadspaPluginInfo ();
        ~LadspaPluginInfo () { };
 
        PluginPtr load (Session& session);
index d6363d696bac7b6e5df8737f08edafebc7b8fbb2..4240dd0fe5764d7a781e5b3b102cb766e83deade 100644 (file)
@@ -103,7 +103,7 @@ class VSTPlugin : public ARDOUR::Plugin
 class VSTPluginInfo : public PluginInfo
 {
   public:
-       VSTPluginInfo () {}
+       VSTPluginInfo ();
        ~VSTPluginInfo () {}
        
        PluginPtr load (Session& session);
index 0cd21b90ee344c6857cc3d225238a2e4c189fab3..510260406682329073b568f1d90e74b4eb74db97 100644 (file)
@@ -1472,11 +1472,12 @@ AUPlugin::has_editor () const
 AUPluginInfo::AUPluginInfo (boost::shared_ptr<CAComponentDescription> d)
        : descriptor (d)
 {
-
+       type = ARDOUR::AudioUnit;
 }
 
 AUPluginInfo::~AUPluginInfo ()
 {
+       type = ARDOUR::AudioUnit;
 }
 
 PluginPtr
index 721c61f59395b93959d3d2a466c4c36fb142c6d4..03b56e5167801cf3e6979e15389be4fbb8667f03 100644 (file)
@@ -850,38 +850,7 @@ PluginInsert::latency()
 ARDOUR::PluginType
 PluginInsert::type ()
 {
-       boost::shared_ptr<LadspaPlugin> lp;
-#ifdef VST_SUPPORT
-       boost::shared_ptr<VSTPlugin> vp;
-#endif
-#ifdef HAVE_AUDIOUNITS
-       boost::shared_ptr<AUPlugin> ap;
-#endif
-#ifdef HAVE_LV2
-       boost::shared_ptr<LV2Plugin> lv2p;
-#endif
-       
-       PluginPtr other = plugin ();
-
-       if ((lp = boost::dynamic_pointer_cast<LadspaPlugin> (other)) != 0) {
-               return ARDOUR::LADSPA;
-#ifdef VST_SUPPORT
-       } else if ((vp = boost::dynamic_pointer_cast<VSTPlugin> (other)) != 0) {
-               return ARDOUR::VST;
-#endif
-#ifdef HAVE_AUDIOUNITS
-       } else if ((ap = boost::dynamic_pointer_cast<AUPlugin> (other)) != 0) {
-               return ARDOUR::AudioUnit;
-#endif
-#ifdef HAVE_LV2
-       } else if ((lv2p = boost::dynamic_pointer_cast<LV2Plugin> (other)) != 0) {
-               return ARDOUR::LV2;
-#endif
-       } else {
-               error << "Unknown plugin type" << endmsg;
-               /* NOT REACHED */
-               return (ARDOUR::PluginType) 0;
-       }
+       return plugin()->get_info()->type;
 }
 
 /***************************************************************
index 8d8151905031a63c39fbd849661a2226abb1ce20..16a87888b51c4fa0c19549c8f8cae5a7fcf02401 100644 (file)
@@ -669,3 +669,9 @@ LadspaPluginInfo::load (Session& session)
                return PluginPtr ((Plugin*) 0);
        }       
 }
+
+
+LadspaPluginInfo::LadspaPluginInfo()
+{
+       type = ARDOUR::LADSPA;
+}
index e162b8db70c1098e3718722139f592312a8325bc..f2fbefd7ccf46a2b5ad2d4f2fcccf35f279495a6 100644 (file)
@@ -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()