Trait streamduck_core::modules::SDModule
source · [−]pub trait SDModule: Send + Sync {
Show 15 methods
fn name(&self) -> String;
fn components(&self) -> HashMap<String, ComponentDefinition>;
fn add_component(&self, core: CoreHandle, button: &mut Button, name: &str);
fn remove_component(&self, core: CoreHandle, button: &mut Button, name: &str);
fn paste_component(
&self,
core: CoreHandle,
reference_button: &Button,
new_button: &mut Button
);
fn component_values(
&self,
core: CoreHandle,
button: &Button,
name: &str
) -> Vec<UIValue>;
fn set_component_value(
&self,
core: CoreHandle,
button: &mut Button,
name: &str,
value: Vec<UIValue>
);
fn listening_for(&self) -> Vec<String>;
fn settings(&self, core_manager: Arc<CoreManager>) -> Vec<UIValue> { ... }
fn set_setting(&self, core_manager: Arc<CoreManager>, value: Vec<UIValue>) { ... }
fn global_event(&self, event: SDGlobalEvent) { ... }
fn event(&self, core: CoreHandle, event: SDCoreEvent) { ... }
fn render(
&self,
core: CoreHandle,
button: &UniqueButton,
frame: &mut DynamicImage
) { ... }
fn render_hash(
&self,
core: CoreHandle,
button: &UniqueButton,
hash: &mut Box<dyn Hasher>
) { ... }
fn metadata(&self) -> PluginMetadata { ... }
}
Expand description
Module trait
Required Methods
fn components(&self) -> HashMap<String, ComponentDefinition>
fn components(&self) -> HashMap<String, ComponentDefinition>
Definition for components that module will be providing
fn add_component(&self, core: CoreHandle, button: &mut Button, name: &str)
fn add_component(&self, core: CoreHandle, button: &mut Button, name: &str)
Method for adding components onto buttons
fn remove_component(&self, core: CoreHandle, button: &mut Button, name: &str)
fn remove_component(&self, core: CoreHandle, button: &mut Button, name: &str)
Method for removing components from buttons
fn paste_component(
&self,
core: CoreHandle,
reference_button: &Button,
new_button: &mut Button
)
fn paste_component(
&self,
core: CoreHandle,
reference_button: &Button,
new_button: &mut Button
)
Method for handling pasting components of plugin, can be used for any additional handling
fn component_values(
&self,
core: CoreHandle,
button: &Button,
name: &str
) -> Vec<UIValue>
fn component_values(
&self,
core: CoreHandle,
button: &Button,
name: &str
) -> Vec<UIValue>
Method for letting core know what values component currently has
fn set_component_value(
&self,
core: CoreHandle,
button: &mut Button,
name: &str,
value: Vec<UIValue>
)
fn set_component_value(
&self,
core: CoreHandle,
button: &mut Button,
name: &str,
value: Vec<UIValue>
)
Method for setting values on components
fn listening_for(&self) -> Vec<String>
fn listening_for(&self) -> Vec<String>
Specifies which components the module will be receiving events for
Provided Methods
Current settings state of the plugin
fn set_setting(&self, core_manager: Arc<CoreManager>, value: Vec<UIValue>)
fn set_setting(&self, core_manager: Arc<CoreManager>, value: Vec<UIValue>)
Method for updating plugin settings from UI
fn global_event(&self, event: SDGlobalEvent)
fn global_event(&self, event: SDGlobalEvent)
Method for handling global events, add GLOBAL_EVENTS feature to the plugin metadata to receive global events
fn event(&self, core: CoreHandle, event: SDCoreEvent)
fn event(&self, core: CoreHandle, event: SDCoreEvent)
Method for handling core events, add CORE_EVENTS feature to the plugin metadata to receive core events
fn render(&self, core: CoreHandle, button: &UniqueButton, frame: &mut DynamicImage)
fn render(&self, core: CoreHandle, button: &UniqueButton, frame: &mut DynamicImage)
Method renderer will run for rendering additional information on a button if RENDERING feature was specified
fn render_hash(
&self,
core: CoreHandle,
button: &UniqueButton,
hash: &mut Box<dyn Hasher>
)
fn render_hash(
&self,
core: CoreHandle,
button: &UniqueButton,
hash: &mut Box<dyn Hasher>
)
Method for telling renderer if anything changed
Changing state of the hash in anyway will cause renderer to either rerender, or use previous cache. This method will also called very frequently, so keep code in here fast
fn metadata(&self) -> PluginMetadata
fn metadata(&self) -> PluginMetadata
Metadata of the module, auto-implemented for plugins from plugin metadata