#[derive(Debug, Clone)]
pub struct GenericPluginTable {
pub name: String,
pub information: String,
}
pub trait GenericPlugin: Send + Sync + Sized {
fn new(info: crate::common::AviUtl2Info) -> crate::common::AnyResult<Self>;
fn plugin_info(&self) -> crate::generic::GenericPluginTable;
fn register(&mut self, registry: &mut crate::generic::HostAppHandle);
fn on_project_load(&mut self, project: &mut crate::generic::ProjectFile) {
let _ = project;
}
fn on_project_save(&mut self, project: &mut crate::generic::ProjectFile) {
let _ = project;
}
fn on_clear_cache(&mut self, edit_section: &crate::generic::EditSection) {
let _ = edit_section;
}
fn event_update_object_info(&mut self) {}
fn event_change_edit_frame(&mut self) {}
fn event_change_scene_info(&mut self) {}
fn event_change_focus_object(&mut self) {}
fn event_change_edit_state(&mut self) {}
fn with_instance<R>(f: impl FnOnce(&Self) -> R) -> R
where
Self: crate::generic::__bridge::GenericSingleton,
{
<Self as crate::generic::__bridge::GenericSingleton>::with_instance(f)
}
fn with_instance_mut<R>(f: impl FnOnce(&mut Self) -> R) -> R
where
Self: crate::generic::__bridge::GenericSingleton,
{
<Self as crate::generic::__bridge::GenericSingleton>::with_instance_mut(f)
}
}
mod project;
pub use project::*;
mod edit_section;
pub use edit_section::*;
mod host_app;
pub use host_app::*;
mod edit_handle;
pub use edit_handle::*;