diff --git a/crates/suil/src/test.rs b/crates/suil/src/test.rs index b6bcebbf..17889e9d 100644 --- a/crates/suil/src/test.rs +++ b/crates/suil/src/test.rs @@ -5,40 +5,55 @@ use std::sync::Arc; fn test_lv2_ui () { let mut features = []; std::mem::forget(features); - gtk::init().unwrap(); - //use gtk::prelude::{ApplicationExt, ApplicationExtManual}; - //let app = gtk::Application::builder().application_id("lol.tek").build(); - //app.connect_activate(move |app| { + //gtk::init().unwrap(); + use gtk::prelude::{ApplicationExt, ApplicationExtManual}; + let app = gtk::Application::builder().application_id("lol.tek").build(); + app.connect_activate(move |app| { let host = Host::new(); - //let mut plugin = plugin::LV2Plugin::new("file:///home/user/.lv2/Odin2.lv2").unwrap(); - let mut plugin = plugin::LV2Plugin::new("file:///home/user/.lv2/Helm.lv2").unwrap(); + let mut plugin = plugin::LV2Plugin::new("file:///home/user/.lv2/Odin2.lv2").unwrap(); + //let mut plugin = plugin::LV2Plugin::new("file:///home/user/.lv2/ChowKick.lv2").unwrap(); for ui in plugin.plugin.raw().uis().unwrap().iter() { println!("{:?}", ui.uri()); println!("{:?}", ui.classes()); } + let handle = plugin.instance.raw_mut().instance_mut().handle(); + let instance_access = crate::bound::LV2_Feature { + URI: std::ffi::CString::new("http://lv2plug.in/ns/ext/instance-access").unwrap().into_raw(), + data: handle as *mut _ as *mut std::ffi::c_void + }; + let ui_instance = Arc::new(host.instance( + &mut plugin, + "http://lv2plug.in/ns/extensions/ui#Gtk3UI", + "https://thewavewarden.com/odin2", + "https://thewavewarden.com/odin2#ParentUI", + "http://lv2plug.in/ns/extensions/ui#X11UI", + "/home/user/.lv2/Odin2.lv2/Odin2.so", + "/home/user/.lv2/Odin2.lv2/Odin2.so", + &features, + ).unwrap()); //let instance = Arc::new(host.instance( //&mut plugin, //"http://lv2plug.in/ns/extensions/ui#Gtk3UI", - //"https://thewavewarden.com/odin2", - //"https://thewavewarden.com/odin2#ParentUI", + //"http://tytel.org/helm", + //"http://tytel.org/helm#ParentUI", //"http://lv2plug.in/ns/extensions/ui#X11UI", - //"/home/user/.lv2/Odin2.lv2/Odin2.so", - //"/home/user/.lv2/Odin2.lv2/Odin2.so", + //"/home/user/.lv2/Helm.lv2/helm.so", + //"/home/user/.lv2/Helm.lv2/helm.so", + //&features, + //).unwrap()); + //let instance = Arc::new(host.instance( + //&mut plugin, + //"http://lv2plug.in/ns/extensions/ui#Gtk3UI", + //"http://github.com/Chowdhury-DSP/ChowKick", + //"http://github.com/Chowdhury-DSP/ChowKick:UI", + //"http://lv2plug.in/ns/extensions/ui#X11UI", + //"/home/user/.lv2/ChowKick.lv2/libChowKick.so", + //"/home/user/.lv2/ChowKick.lv2/libChowKick.so", //&features, //).unwrap()); - let instance = Arc::new(host.instance( - &mut plugin, - "http://lv2plug.in/ns/extensions/ui#Gtk3UI", - "http://tytel.org/helm", - "http://tytel.org/helm#ParentUI", - "http://lv2plug.in/ns/extensions/ui#X11UI", - "/home/user/.lv2/Helm.lv2/helm.so", - "/home/user/.lv2/Helm.lv2/helm.so", - &features, - ).unwrap()); //println!("{:?}", instance.get_widget()); - //}); - //app.run(); + }); + app.run(); //self::ui::UI::run(&instance).join(); }