use crate::clap::plugin::NamClapMainThread;
use crate::clap::processor::NamClapProcessor;
use clack_extensions::audio_ports_activation::{
PluginAudioPortsActivation, PluginAudioPortsActivationImpl, PluginAudioPortsActivationSetImpl,
SampleSize,
};
use std::sync::atomic::Ordering;
pub type NamPluginAudioPortsActivation = PluginAudioPortsActivation;
impl PluginAudioPortsActivationImpl for NamClapMainThread<'_> {
fn can_activate_while_processing(&mut self) -> bool {
true
}
}
impl PluginAudioPortsActivationSetImpl for NamClapMainThread<'_> {
fn set_active(
&mut self,
is_input: bool,
port_index: u32,
is_active: bool,
_sample_size: SampleSize,
) -> bool {
if port_index != 0 {
return false;
}
if is_input {
self.shared
.ui_to_rt
.host_r_deactivated
.store(!is_active, Ordering::Release);
}
true
}
}
impl PluginAudioPortsActivationSetImpl for NamClapProcessor<'_> {
fn set_active(
&mut self,
is_input: bool,
port_index: u32,
is_active: bool,
_sample_size: SampleSize,
) -> bool {
if port_index != 0 {
return false;
}
if is_input {
self.shared
.ui_to_rt
.host_r_deactivated
.store(!is_active, Ordering::Release);
}
true
}
}