Struct PluginContext

Source
pub struct PluginContext { /* private fields */ }
Expand description

This represents the context which is needed to access REAPER functions from plug-ins.

Once obtained, it is supposed to be passed to Reaper::load().

Implementations§

Source§

impl PluginContext

Source

pub unsafe fn from_extension_plugin( h_instance: *mut c_void, rec: reaper_plugin_info_t, static_context: StaticExtensionPluginContext, ) -> Result<PluginContext, ContextFromExtensionPluginError>

Creates a plug-in context from an extension entry point plug-in info.

It requires a module handle and the pointer to a reaper_plugin_info_t struct. REAPER provides both when calling the ReaperPluginEntry function (the main entry point for any extension plug-in).

It’s recommended to use the reaper_extension_plugin macro in the reaper-macros crate instead of calling this function directly.

§Errors

Returns an error if the given plug-in info is not suitable for loading REAPER functions.

§Safety

REAPER can crash if you pass an invalid pointer.

Source

pub fn from_vst_plugin( host: &HostCallback, static_context: StaticVstPluginContext, ) -> Result<PluginContext, ContextFromVstPluginError>

Creates a plug-in context from a VST host callback.

It requires the host callback which vst-rs passes to the plugin’s new() function.

§Errors

Returns an error if the given host callback is not suitable for loading REAPER functions.

Source

pub unsafe fn GetFunc(&self, name: *const i8) -> *mut c_void

Returns a generic API function by its name.

§Safety

REAPER can crash if you pass an invalid pointer.

Source

pub fn h_instance(&self) -> *mut c_void

On Windows, this returns the HINSTANCE passed to DllMain (VST plug-ins) or ReaperPluginEntry (extension plug-ins).

The returned HINSTANCE represents the handle of the module (DLL) containing the plug-in.

On Linux, this returns null.

Source

pub fn swell_function_provider( &self, ) -> Option<unsafe extern "C" fn(*const i8) -> *mut c_void>

On Linux, this returns a pointer to a function for getting a generic SWELL API function by its name.

On Windows, this returns None.

Source

pub fn type_specific(&self) -> &TypeSpecificPluginContext

Returns the type-specific plug-in context.

Source

pub fn is_in_main_thread(&self) -> bool

Returns whether we are currently in the main thread.

Trait Implementations§

Source§

impl Clone for PluginContext

Source§

fn clone(&self) -> PluginContext

Returns a duplicate 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 PluginContext

Source§

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

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

impl PartialEq for PluginContext

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for PluginContext

Source§

impl Eq for PluginContext

Source§

impl Send for PluginContext

Source§

impl StructuralPartialEq for PluginContext

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where 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.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

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
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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.