clap

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

commit b93ecb7cca3ad1a20ec332b4f5afb38479578fe2
parent d26a66b80812eb36e0d3ff37b8b9a75521c637e2
Author: Alexandre BIQUE <bique.alexandre@gmail.com>
Date:   Fri, 14 May 2021 01:43:59 +0200

Rework the param rescan

Diffstat:
Minclude/clap/ext/params.h | 32+++++++++++++++++---------------
1 file changed, 17 insertions(+), 15 deletions(-)

diff --git a/include/clap/ext/params.h b/include/clap/ext/params.h @@ -85,31 +85,33 @@ typedef struct clap_plugin_params { } clap_plugin_params; enum { - // The parameter values did change. - // The host will scan the parameter value and value_to_text + // The parameter values did change. Typically what happens when loading a preset. + // The host will scan the parameter value and value_to_text. + // The host will not record those changes as automation points. CLAP_PARAM_RESCAN_VALUES = 1 << 0, // The parameter info did change CLAP_PARAM_RESCAN_INFO = 1 << 1, - // The parameter range did change, or enum definition did change. - // This change can't be performed immediately because there might be - // param updates pending in the host's queues. - // The change will apply once the host deactivates the plugin. - CLAP_PARAM_RESCAN_RANGES = 1 << 2, - - // The parameter list did change - // It means that some parameters maybe added or removed, - // the index <-> id mapping is invalidated + // This invalidates everything the host knows about parameters. + // + // Some parameters were added or removed. + // Some parameter had critical changes which requieres to invalidate the host parameter update + // queues: + // - is_automatable + // - range + // - enum definition + // - ... // // The plugin can't perform the parameter list change immediately: - // 1. the plugin sends CLAP_PARAM_RESCAN_LIST + // 1. host_params->rescan(host, CLAP_PARAM_RESCAN_ALL); // 2. the host deactivates the plugin, be aware that it may happen a bit later // because the host needs to flush its parameters update queues and suspend // the plugin execution in the audio engine - // 3. the plugin can switch to its new parameter set - // 4. the host activates the plugin - CLAP_PARAM_RESCAN_LIST = 1 << 3, + // 3. the plugin can switch to its new parameter set during plugin->set_active(plugin, 0, false); + // 4. the host scans all the parameters + // 5. the host activates the plugin + CLAP_PARAM_RESCAN_ALL = 1 << 2, }; typedef struct clap_host_params {