Struct rsynth::backend::vst_backend::vst::api::AEffect[]

#[repr(C)]pub struct AEffect {
    pub magic: i32,
    pub dispatcher: fn(*mut AEffect, i32, i32, isize, *mut c_void, f32) -> isize,
    pub _process: fn(*mut AEffect, *const *const f32, *mut *mut f32, i32),
    pub setParameter: fn(*mut AEffect, i32, f32),
    pub getParameter: fn(*mut AEffect, i32) -> f32,
    pub numPrograms: i32,
    pub numParams: i32,
    pub numInputs: i32,
    pub numOutputs: i32,
    pub flags: i32,
    pub reserved1: isize,
    pub reserved2: isize,
    pub initialDelay: i32,
    pub _realQualities: i32,
    pub _offQualities: i32,
    pub _ioRatio: f32,
    pub object: *mut c_void,
    pub user: *mut c_void,
    pub uniqueId: i32,
    pub version: i32,
    pub processReplacing: fn(*mut AEffect, *const *const f32, *mut *mut f32, i32),
    pub processReplacingF64: fn(*mut AEffect, *const *const f64, *mut *mut f64, i32),
    pub future: [u8; 56],
}

Used with the VST API to pass around plugin information.

Fields

magic: i32

Magic number. Must be ['V', 'S', 'T', 'P'].

dispatcher: fn(*mut AEffect, i32, i32, isize, *mut c_void, f32) -> isize

Host to plug-in dispatcher.

_process: fn(*mut AEffect, *const *const f32, *mut *mut f32, i32)

Accumulating process mode is deprecated in VST 2.4! Use processReplacing instead!

setParameter: fn(*mut AEffect, i32, f32)

Set value of automatable parameter.

getParameter: fn(*mut AEffect, i32) -> f32

Get value of automatable parameter.

numPrograms: i32

Number of programs (Presets).

numParams: i32

Number of parameters. All programs are assumed to have this many parameters.

numInputs: i32

Number of audio inputs.

numOutputs: i32

Number of audio outputs.

flags: i32

Bitmask made of values from api::PluginFlags.

use vst::api::PluginFlags;
let flags = PluginFlags::CAN_REPLACING | PluginFlags::CAN_DOUBLE_REPLACING;
// ...
reserved1: isize

Reserved for host, must be 0.

reserved2: isize

Reserved for host, must be 0.

initialDelay: i32

For algorithms which need input in the first place (Group delay or latency in samples).

This value should be initially in a resume state.

_realQualities: i32

Deprecated unused member.

_offQualities: i32

Deprecated unused member.

_ioRatio: f32

Deprecated unused member.

object: *mut c_void

Void pointer usable by api to store object data.

user: *mut c_void

User defined pointer.

uniqueId: i32

Registered unique identifier (register it at Steinberg 3rd party support Web). This is used to identify a plug-in during save+load of preset and project.

version: i32

Plug-in version (e.g. 1100 for v1.1.0.0).

processReplacing: fn(*mut AEffect, *const *const f32, *mut *mut f32, i32)

Process audio samples in replacing mode.

processReplacingF64: fn(*mut AEffect, *const *const f64, *mut *mut f64, i32)

Process double-precision audio samples in replacing mode.

future: [u8; 56]

Reserved for future use (please zero).

Implementations

impl AEffect

pub unsafe fn get_plugin(&mut self) -> &mut Box<dyn Plugin + 'static, Global>

Return handle to Plugin object. Only works for plugins created using this library.

pub unsafe fn drop_plugin(&mut self)

Drop the Plugin object. Only works for plugins created using this library.

Auto Trait Implementations

impl RefUnwindSafe for AEffect

impl !Send for AEffect

impl !Sync for AEffect

impl Unpin for AEffect

impl UnwindSafe for AEffect

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

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

impl<T> From<T> for T[src]

impl<S> FromSample<S> for S

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

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

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.