pub struct AudioIOLayout {
    pub main_input_channels: Option<NonZeroU32>,
    pub main_output_channels: Option<NonZeroU32>,
    pub aux_input_ports: &'static [NonZeroU32],
    pub aux_output_ports: &'static [NonZeroU32],
    pub names: PortNames,
}
Expand description

A description of a plugin’s audio IO configuration. The Plugin defines a list of supported audio IO configs, with the first one acting as the default layout. Depending on the plugin API, the host may pick a different configuration from the list and use that instead. The final chosen configuration is passed as an argument to the Plugin::initialize() function so the plugin can allocate its data structures based on the number of audio channels it needs to process.

Fields§

§main_input_channels: Option<NonZeroU32>

The number of main input channels for the plugin, if it has a main input port. This can be set to None if the plugin does not have one.

§main_output_channels: Option<NonZeroU32>

The number of main output channels for the plugin, if it has a main output port. This can be set to None if the plugin does not have one.

§aux_input_ports: &'static [NonZeroU32]

The plugin’s additional sidechain inputs, if it has any. Use the new_nonzero_u32() function to construct these values until const Option::unwrap() gets stabilized (https://github.com/rust-lang/rust/issues/67441).

§aux_output_ports: &'static [NonZeroU32]

The plugin’s additional outputs, if it has any. Use the new_nonzero_u32() function to construct these values until const Option::unwrap() gets stabilized (https://github.com/rust-lang/rust/issues/67441).

§names: PortNames

Optional names for the audio ports. Defining these can be useful for plugins with multiple output and input ports.

Implementations§

source§

impl AudioIOLayout

source

pub const fn const_default() -> Self

AudioIOLayout::default(), but as a const function. Used when initializing Plugin::AUDIO_IO_LAYOUTS. (https://github.com/rust-lang/rust/issues/67792)

source

pub fn name(&self) -> String

A descriptive name for the layout. This is taken from PortNames::layout if set. Otherwise it is generated based on the layout.

source

pub fn main_input_name(&self) -> String

The name for the main input port. Either generated or taken from the names field.

source

pub fn main_output_name(&self) -> String

The name for the main output port. Either generated or taken from the names field.

source

pub fn aux_input_name(&self, idx: usize) -> Option<String>

The name for the auxiliary input port with the given index. Either generated or taken from the names field.

source

pub fn aux_output_name(&self, idx: usize) -> Option<String>

The name for the auxiliary output port with the given index. Either generated or taken from the names field.

Trait Implementations§

source§

impl Clone for AudioIOLayout

source§

fn clone(&self) -> AudioIOLayout

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AudioIOLayout

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for AudioIOLayout

source§

fn default() -> AudioIOLayout

Returns the “default value” for a type. Read more
source§

impl Hash for AudioIOLayout

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<AudioIOLayout> for AudioIOLayout

source§

fn eq(&self, other: &AudioIOLayout) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for AudioIOLayout

source§

impl Eq for AudioIOLayout

source§

impl StructuralEq for AudioIOLayout

source§

impl StructuralPartialEq for AudioIOLayout

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> ToSample<U> for Twhere U: FromSample<T>,

§

fn to_sample_(self) -> U

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Any for Twhere T: Any,

§

impl<T> CloneAny for Twhere T: Any + Clone,

§

impl<S, T> Duplex<S> for Twhere T: FromSample<S> + ToSample<S>,