Skip to content

Commit

Permalink
configurable-audio-ports in plugin-proxy
Browse files Browse the repository at this point in the history
  • Loading branch information
MeijisIrlnd committed Sep 14, 2024
1 parent a444bb6 commit 74834f7
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
8 changes: 8 additions & 0 deletions include/clap/helpers/plugin-proxy.hh
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@ namespace clap { namespace helpers {
uint32_t audioPortsCount(bool isInput) const noexcept;
bool audioPortsGet(uint32_t index, bool isInput, clap_audio_port_info_t *info) const noexcept;

/////////////////////////////
// clap_plugin_configurable_audio_ports //
/////////////////////////////
bool canUseConfigurableAudioPorts() const noexcept;
bool configurableAudioPortsCanApplyConfiguration(clap_audio_port_configuration_request* requests, uint32_t requests_count) const noexcept;
bool configurableAudioPortsApplyConfiguration(clap_audio_port_configuration_request* requests, uint32_t requests_count) const noexcept;

/////////////////////
// clap_plugin_gui //
/////////////////////
Expand Down Expand Up @@ -154,6 +161,7 @@ namespace clap { namespace helpers {
const clap_plugin& _plugin;

const clap_plugin_audio_ports *_pluginAudioPorts = nullptr;
const clap_plugin_configurable_audio_ports *_pluginConfigurableAudioPorts = nullptr;
const clap_plugin_gui *_pluginGui = nullptr;
const clap_plugin_latency *_pluginLatency = nullptr;
const clap_plugin_note_ports *_pluginNotePorts = nullptr;
Expand Down
29 changes: 29 additions & 0 deletions include/clap/helpers/plugin-proxy.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ namespace clap { namespace helpers {
return false;

getExtension(_pluginAudioPorts, CLAP_EXT_AUDIO_PORTS);
getExtension(_pluginConfigurableAudioPorts, CLAP_EXT_CONFIGURABLE_AUDIO_PORTS);
getExtension(_pluginGui, CLAP_EXT_GUI);
getExtension(_pluginLatency, CLAP_EXT_LATENCY);
getExtension(_pluginNotePorts, CLAP_EXT_NOTE_PORTS);
Expand Down Expand Up @@ -48,6 +49,7 @@ namespace clap { namespace helpers {
_plugin.destroy(&_plugin);

_pluginAudioPorts = nullptr;
_pluginConfigurableAudioPorts = nullptr;
_pluginGui = nullptr;
_pluginParams = nullptr;
_pluginPosixFdSupport = nullptr;
Expand Down Expand Up @@ -137,6 +139,33 @@ namespace clap { namespace helpers {
return _pluginAudioPorts->get(&_plugin, index, isInput, info);
}

/////////////////////////////
// clap_plugin_configurable_audio_ports //
/////////////////////////////
template<MisbehaviourHandler h, CheckingLevel l>
bool PluginProxy<h, l>::canUseConfigurableAudioPorts() const noexcept {
if(!_pluginConfigurableAudioPorts) {
return false;
}
return true;
}

template<MisbehaviourHandler h, CheckingLevel l>
bool PluginProxy<h, l>::configurableAudioPortsCanApplyConfiguration(clap_audio_port_configuration_request *requests, uint32_t requests_count) const noexcept {
if(!_pluginConfigurableAudioPorts) return false;
ensureMainThread("clap_plugin_configurable_audio_ports.can_apply_configuration");
return _pluginConfigurableAudioPorts->can_apply_configuration(requests, requests_count);
}

template<MisbehaviourHandler h, CheckingLevel l>
bool PluginProxy<h, l>::configurableAudioPortsApplyConfiguration(clap_audio_port_configuration_request *requests, uint32_t requests_count) const noexcept {
if(!_pluginConfigurableAudioPorts) return false;
ensureMainThread("clap_plugin_configurable_audio_ports.apply_configuration");
return _pluginConfigurableAudioPorts->apply_configuration(requests, requests_count);
}



/////////////////////
// clap_plugin_gui //
/////////////////////
Expand Down

0 comments on commit 74834f7

Please sign in to comment.