clap

CLAP Audio Plugin API
Log | Files | Refs | README | LICENSE

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:
Mexamples/plugins/parameters.cc | 8++++----
Mexamples/plugins/parameters.hh | 10+++++++++-
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 &param) { - 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 &parameters); + void addParameter(const clap_param_info &info); void addParameter(const Parameter &param); size_t count() const noexcept;