clap

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

commit c88dd48f4bd330073540ce20f878a5fa3a46bc2f
parent d074053509f63ef8ea3ae83b289277dc209231c5
Author: Alexandre BIQUE <bique.alexandre@gmail.com>
Date:   Tue,  8 Jun 2021 09:39:07 +0200

More work

Diffstat:
Mexamples/glue/clap-plugin.cc | 2++
Mexamples/glue/clap-plugin.hh | 24++++++++++++++----------
Mexamples/host/plugin-host.cc | 12+++++++++---
3 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/examples/glue/clap-plugin.cc b/examples/glue/clap-plugin.cc @@ -23,6 +23,8 @@ namespace clap { plugin_.stop_processing = nullptr; } + Plugin::~Plugin() = default; + ///////////////////// // CLAP Interfaces // ///////////////////// diff --git a/examples/glue/clap-plugin.hh b/examples/glue/clap-plugin.hh @@ -17,7 +17,7 @@ namespace clap { protected: Plugin(const clap_plugin_descriptor *desc, const clap_host *host); - virtual ~Plugin() = default; + virtual ~Plugin(); // not copyable, not moveable Plugin(const Plugin &) = delete; @@ -58,7 +58,7 @@ namespace clap { // clap_plugin_thread_pool // //-------------------------// virtual bool implementsThreadPool() const noexcept { return false; } - virtual void threadPoolExec(uint32_t taskIndex) noexcept; + virtual void threadPoolExec(uint32_t taskIndex) noexcept {} //-------------------// // clap_plugin_state // @@ -134,11 +134,13 @@ namespace clap { // clap_plugin_quick_controls // //----------------------------// virtual bool implementQuickControls() const noexcept { return false; } - virtual uint32_t quickControlsPageCount() noexcept; + virtual uint32_t quickControlsPageCount() noexcept { return 0; } virtual bool quickControlsPageInfo(uint32_t pageIndex, - clap_quick_controls_page *page) noexcept; - virtual void quickControlsSelectPage(clap_id pageId) noexcept; - virtual clap_id quickControlsSelectedPage() noexcept; + clap_quick_controls_page *page) noexcept { + return false; + } + virtual void quickControlsSelectPage(clap_id pageId) noexcept {} + virtual clap_id quickControlsSelectedPage() noexcept { return CLAP_INVALID_ID; } //-----------------------// // clap_plugin_note_name // @@ -168,25 +170,27 @@ namespace clap { // clap_plugin_gui_x11 // //---------------------// virtual bool implementsGuiX11() const noexcept { return false; } - virtual bool guiX11Attach(const char *displayName, unsigned long window) noexcept; + virtual bool guiX11Attach(const char *displayName, unsigned long window) noexcept { + return false; + } //-----------------------// // clap_plugin_gui_win32 // //-----------------------// virtual bool implementsGuiWin32() const noexcept { return false; } - virtual bool guiWin32Attach(clap_hwnd window) noexcept; + virtual bool guiWin32Attach(clap_hwnd window) noexcept { return false; } //-----------------------// // clap_plugin_gui_cocoa // //-----------------------// virtual bool implementsGuiCocoa() const noexcept { return false; } - virtual bool guiCocoaAttach(void *nsView) noexcept; + virtual bool guiCocoaAttach(void *nsView) noexcept { return false; } //-------------------------------// // clap_plugin_gui_free_standing // //-------------------------------// virtual bool implementsGuiFreeStanding() const noexcept { return false; } - virtual bool guiFreeStandingOpen() noexcept; + virtual bool guiFreeStandingOpen() noexcept { return false; } ///////////// // Logging // diff --git a/examples/host/plugin-host.cc b/examples/host/plugin-host.cc @@ -767,10 +767,16 @@ void PluginHost::setParamValueByHost(PluginParam &param, clap_param_value value) checkForMainThread(); param.setValue(value); - appToEngineQueue_.set(param.info().id, value); - if (pluginParams_ && pluginParams_->set_value) + + if (isPluginActive()) + { + appToEngineQueue_.set(param.info().id, value); + appToEngineQueue_.producerDone(); + } + else + { pluginParams_->set_value(plugin_, param.info().id, value, value); - appToEngineQueue_.producerDone(); + } } void PluginHost::scanParams() { clapParamsRescan(&host_, CLAP_PARAM_RESCAN_ALL); }