commit 83113832f91571def8cdb24f6b0d3ae393293c6d
parent b3739835bb4849f861a6637df74d34fc5732283c
Author: Alexandre BIQUE <bique.alexandre@gmail.com>
Date: Tue, 31 Aug 2021 12:39:50 +0200
hardening clap parameters and set the cookie
Diffstat:
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/examples/plugins/parameters.cc b/examples/plugins/parameters.cc
@@ -3,11 +3,11 @@
#include "parameters.hh"
namespace clap {
- void clap::Parameters::addParameter(const Parameter ¶m) {
- assert(id2param_.find(param.info().id) == id2param_.end());
+ void clap::Parameters::addParameter(const clap_param_info &info) {
+ assert(id2param_.find(info.id) == id2param_.end());
- auto p = std::make_unique<Parameter>(param);
- id2param_.emplace(param.info().id, p.get());
+ auto p = std::make_unique<Parameter>(info);
+ id2param_.emplace(info.id, p.get());
params_.emplace_back(std::move(p));
}
diff --git a/examples/plugins/parameters.hh b/examples/plugins/parameters.hh
@@ -16,7 +16,14 @@
namespace clap {
class Parameter {
public:
- Parameter(const clap_param_info &info) : info_(info) {}
+ explicit Parameter(const clap_param_info &info) : info_(info) {
+ info_.cookie = this;
+ }
+
+ Parameter(const Parameter&) = delete;
+ Parameter(Parameter&&) = delete;
+ Parameter& operator=(const Parameter&) = delete;
+ Parameter& operator=(Parameter&&) = delete;
const double value() const noexcept { return value_; }
const double modulation() const noexcept { return modulation_; }
@@ -50,6 +57,7 @@ namespace clap {
Parameters() = default;
Parameters(const Parameters ¶meters);
+ void addParameter(const clap_param_info &info);
void addParameter(const Parameter ¶m);
size_t count() const noexcept;