#define __ardour_readonly_control_h__
#include <boost/weak_ptr.hpp>
+#include "ardour/parameter_descriptor.h"
namespace ARDOUR {
class LIBARDOUR_API ReadOnlyControl : public PBD::Destructible
{
public:
- ReadOnlyControl (boost::shared_ptr<Plugin> p, uint32_t pnum);
+ ReadOnlyControl (boost::shared_ptr<Plugin>, const ParameterDescriptor&, uint32_t pnum);
double get_parameter () const;
std::string describe_parameter ();
+ const ParameterDescriptor& desc() const { return _desc; }
private:
boost::weak_ptr<Plugin> _plugin;
+ const ParameterDescriptor _desc;
uint32_t _parameter_num;
};
if (!plugin->parameter_is_control (i)) {
continue;
}
+
+ ParameterDescriptor desc;
+ plugin->get_parameter_descriptor(i, desc);
+
if (!plugin->parameter_is_input (i)) {
- _control_outputs[i] = boost::shared_ptr<ReadOnlyControl> (new ReadOnlyControl (plugin, i));
+ _control_outputs[i] = boost::shared_ptr<ReadOnlyControl> (new ReadOnlyControl (plugin, desc, i));
continue;
}
Evoral::Parameter param (PluginAutomation, 0, i);
- ParameterDescriptor desc;
- plugin->get_parameter_descriptor(i, desc);
-
const bool automatable = a.find(param) != a.end();
if (automatable) {
using namespace ARDOUR;
-ReadOnlyControl::ReadOnlyControl (boost::shared_ptr<Plugin> p, uint32_t pnum)
+ReadOnlyControl::ReadOnlyControl (boost::shared_ptr<Plugin> p, const ParameterDescriptor& desc, uint32_t pnum)
: _plugin (boost::weak_ptr<Plugin> (p))
+ , _desc (desc)
, _parameter_num (pnum)
{ }