summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/parameter_descriptor.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-10-31 23:48:27 -0400
committerDavid Robillard <d@drobilla.net>2014-11-02 02:10:24 -0500
commit6dfb11c2d08201f1a27818955707590b762f5a40 (patch)
treea0ba48815d3a40bb8491b940d97d3c2330cb19f3 /libs/ardour/ardour/parameter_descriptor.h
parentbd6ba1717ef43bd4399b96a03bbb576eab55b9a2 (diff)
Move ParameterDescriptor from Plugin to its own header.
This fixes circular dependency issues that arise when using ParameterDescriptor more widely.
Diffstat (limited to 'libs/ardour/ardour/parameter_descriptor.h')
-rw-r--r--libs/ardour/ardour/parameter_descriptor.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/libs/ardour/ardour/parameter_descriptor.h b/libs/ardour/ardour/parameter_descriptor.h
new file mode 100644
index 0000000000..a6315ae429
--- /dev/null
+++ b/libs/ardour/ardour/parameter_descriptor.h
@@ -0,0 +1,74 @@
+/*
+ Copyright (C) 2014 Paul Davis
+ Author: David Robillard
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#ifndef __ardour_parameter_descriptor_h__
+#define __ardour_parameter_descriptor_h__
+
+#include "ardour/variant.h"
+
+namespace ARDOUR {
+
+typedef std::map<const std::string, const float> ScalePoints;
+
+/** Descriptor of a parameter or control.
+ *
+ * Essentially a union of LADSPA, VST and LV2 info.
+ */
+struct ParameterDescriptor
+{
+ ParameterDescriptor()
+ : key((uint32_t)-1)
+ , datatype(Variant::VOID)
+ , lower(0)
+ , upper(0)
+ , step(0)
+ , smallstep(0)
+ , largestep(0)
+ , integer_step(false)
+ , toggled(false)
+ , logarithmic(false)
+ , sr_dependent(false)
+ , min_unbound(0)
+ , max_unbound(0)
+ , enumeration(false)
+ , midinote(false)
+ {}
+
+ std::string label;
+ boost::shared_ptr<ScalePoints> scale_points;
+ uint32_t key; ///< for properties
+ Variant::Type datatype; ///< for properties
+ float lower; ///< for frequencies, this is in Hz (not a fraction of the sample rate)
+ float upper; ///< for frequencies, this is in Hz (not a fraction of the sample rate)
+ float step;
+ float smallstep;
+ float largestep;
+ bool integer_step;
+ bool toggled;
+ bool logarithmic;
+ bool sr_dependent;
+ bool min_unbound;
+ bool max_unbound;
+ bool enumeration;
+ bool midinote; ///< only used if integer_step is also true
+};
+
+} // namespace ARDOUR
+
+#endif // __ardour_parameter_descriptor_h__