Merge branch 'master' into cairocanvas
[ardour.git] / libs / ardour / ardour / plugin.h
index 8bdb96bdd0d7ae20ce9e5bb09c027d1a1c044878..a69b87efbdf14da59ddce9cbc0aea969bc2be207 100644 (file)
@@ -32,6 +32,7 @@
 #include "ardour/cycles.h"
 #include "ardour/latent.h"
 #include "ardour/plugin_insert.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/midi_state_tracker.h"
 
@@ -49,7 +50,7 @@ class Plugin;
 
 typedef boost::shared_ptr<Plugin> PluginPtr;
 
-class PluginInfo {
+class LIBARDOUR_API PluginInfo {
   public:
        PluginInfo () { }
        virtual ~PluginInfo () { }
@@ -87,7 +88,7 @@ class PluginInfo {
 typedef boost::shared_ptr<PluginInfo> PluginInfoPtr;
 typedef std::list<PluginInfoPtr> PluginInfoList;
 
-class Plugin : public PBD::StatefulDestructible, public Latent
+class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public Latent
 {
   public:
        Plugin (ARDOUR::AudioEngine&, ARDOUR::Session&);
@@ -96,12 +97,23 @@ class Plugin : public PBD::StatefulDestructible, public Latent
 
        struct ParameterDescriptor {
 
-               /* XXX: it would probably be nice if this initialised everything */
                ParameterDescriptor ()
-                       : enumeration (false)
+                       : integer_step(false)
+                       , toggled (false)
+                       , logarithmic (false)
+                       , sr_dependent (false)
+                       , lower (0)
+                       , upper (0)
+                       , step (0)
+                       , smallstep (0)
+                       , largestep (0)
+                       , min_unbound (0)
+                       , max_unbound (0)
+                       , enumeration (false)
+                       , midinote(false)
                {}
 
-               /* essentially a union of LADSPA and VST info */
+               /* essentially a union of LADSPA, VST and LV2 info */
 
                bool integer_step;
                bool toggled;
@@ -116,7 +128,7 @@ class Plugin : public PBD::StatefulDestructible, public Latent
                bool min_unbound;
                bool max_unbound;
                bool enumeration;
-               bool midinote;
+               bool midinote; ///< only used if integer_step is also true
        };
 
        XMLNode& get_state ();