wip: specify instance_access feature

This commit is contained in:
🪞👃🪞 2024-07-24 23:29:47 +03:00
parent d7b3d64472
commit 96570d0267

View file

@ -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();
}