[][src]Trait vst::host::Host

pub trait Host {
    fn automate(&self, index: i32, value: f32) { ... }
fn get_plugin_id(&self) -> i32 { ... }
fn idle(&self) { ... }
fn get_info(&self) -> (isize, String, String) { ... }
fn process_events(&self, events: &Events) { ... }
fn get_time_info(&self, mask: i32) -> Option<TimeInfo> { ... }
fn get_block_size(&self) -> isize { ... }
fn update_display(&self) { ... } }

Implemented by all VST hosts.

Provided methods

fn automate(&self, index: i32, value: f32)

Automate a parameter; the value has been changed.

fn get_plugin_id(&self) -> i32

Get the plugin ID of the currently loading plugin.

This is only useful for shell plugins where this value will change the plugin returned. TODO: implement shell plugins

fn idle(&self)

An idle call.

This is useful when the plugin is doing something such as mouse tracking in the UI.

fn get_info(&self) -> (isize, String, String)

Get vendor and product information.

Returns a tuple in the form of (version, vendor_name, product_name).

fn process_events(&self, events: &Events)

Handle incoming events from the plugin.

fn get_time_info(&self, mask: i32) -> Option<TimeInfo>

Get time information.

fn get_block_size(&self) -> isize

Get block size.

fn update_display(&self)

Refresh UI after the plugin's parameters changed.

Note: some hosts will call some PluginParameters methods from within the update_display call, including get_parameter, get_parameter_label, get_parameter_name and get_parameter_text.

Loading content...

Implementors

impl Host for HostCallback[src]

fn process_events(&self, events: &Events)[src]

Send events to the host.

This should only be called within process or process_f64. Calling process_events anywhere else is undefined behaviour and may crash some hosts.

fn get_time_info(&self, mask: i32) -> Option<TimeInfo>[src]

Request time information from Host.

The mask parameter is composed of the same flags which will be found in the flags field of TimeInfo when returned. That is, if you want the host's tempo, the parameter passed to get_time_info() should have the TEMPO_VALID flag set. This request and delivery system is important, as a request like this may cause significant calculations at the application's end, which may take a lot of our precious time. This obviously means you should only set those flags that are required to get the information you need.

Also please be aware that requesting information does not necessarily mean that that information is provided in return. Check the flags field in the TimeInfo structure to see if your request was actually met.

fn get_block_size(&self) -> isize[src]

Get block size.

fn update_display(&self)[src]

Refresh UI after the plugin's parameters changed.

Loading content...