From ef619c595a72abf13752e2b4a8b2eab3505193da Mon Sep 17 00:00:00 2001 From: unspeaker Date: Wed, 24 Jul 2024 16:42:24 +0300 Subject: [PATCH] slowly figuring it out --- crates/suil/src/lib.rs | 22 ++++++++++++++-------- crates/suil/src/test.rs | 5 +++-- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/crates/suil/src/lib.rs b/crates/suil/src/lib.rs index 62898df4..c9d331d4 100644 --- a/crates/suil/src/lib.rs +++ b/crates/suil/src/lib.rs @@ -5,7 +5,13 @@ pub mod bound; pub struct Host(*mut self::bound::SuilHost); -pub struct Instance(*mut self::bound::SuilInstance); +impl Drop for Host { + fn drop (&mut self) -> () { + unsafe { + bound::suil_host_free(self.0) + } + } +} impl Host { pub fn new () -> Self { @@ -87,13 +93,7 @@ unsafe extern "C" fn index ( //0 //} -impl Drop for Host { - fn drop (&mut self) -> () { - unsafe { - bound::suil_host_free(self.0) - } - } -} +pub struct Instance(*mut self::bound::SuilInstance); impl Drop for Instance { fn drop (&mut self) -> () { @@ -106,3 +106,9 @@ impl Drop for Instance { unsafe impl Send for Instance {} unsafe impl Sync for Instance {} + +impl Instance { + fn get_widget (&self) -> *mut c_void { + unsafe { bound::suil_instance_get_widget(self.0) } + } +} diff --git a/crates/suil/src/test.rs b/crates/suil/src/test.rs index 87447f1a..3ecda447 100644 --- a/crates/suil/src/test.rs +++ b/crates/suil/src/test.rs @@ -13,14 +13,15 @@ fn test_lv2_ui () { std::mem::forget(features); let instance = Arc::new(host.instance( &mut plugin.instance.raw(), - "http://lv2plug.in/ns/extensions/ui#X11UI", + "http://lv2plug.in/ns/extensions/ui#Gtk3UI", "https://thewavewarden.com/odin2", "https://thewavewarden.com/odin2#ParentUI", - "/home/user/.lv2/Odin2.lv2", + "http://lv2plug.in/ns/extensions/ui#X11UI", "/home/user/.lv2/Odin2.lv2/Odin2.so", "/home/user/.lv2/Odin2.lv2/Odin2.so", &features, ).unwrap()); + println!("{:?}", instance.get_widget()); self::ui::UI::run(&instance).join(); }