mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 04:06:45 +01:00
remove todos
This commit is contained in:
parent
de77daf565
commit
9ba0f3401e
10 changed files with 0 additions and 118 deletions
0
crates/tek/src/plugin/lv2_gui.rs
Normal file
0
crates/tek/src/plugin/lv2_gui.rs
Normal file
0
crates/tek/src/plugin/lv2_tui.rs
Normal file
0
crates/tek/src/plugin/lv2_tui.rs
Normal file
0
crates/tek/src/plugin/vst2_tui.rs
Normal file
0
crates/tek/src/plugin/vst2_tui.rs
Normal file
0
crates/tek/src/plugin/vst3_tui.rs
Normal file
0
crates/tek/src/plugin/vst3_tui.rs
Normal file
|
|
@ -1,46 +0,0 @@
|
||||||
use super::*;
|
|
||||||
use ::livi::{
|
|
||||||
World,
|
|
||||||
Instance,
|
|
||||||
Plugin as LiviPlugin,
|
|
||||||
Features,
|
|
||||||
FeaturesBuilder,
|
|
||||||
Port,
|
|
||||||
event::LV2AtomSequence,
|
|
||||||
};
|
|
||||||
use std::thread::JoinHandle;
|
|
||||||
|
|
||||||
/// A LV2 plugin.
|
|
||||||
pub struct LV2Plugin {
|
|
||||||
pub world: World,
|
|
||||||
pub instance: Instance,
|
|
||||||
pub plugin: LiviPlugin,
|
|
||||||
pub features: Arc<Features>,
|
|
||||||
pub port_list: Vec<Port>,
|
|
||||||
pub input_buffer: Vec<LV2AtomSequence>,
|
|
||||||
pub ui_thread: Option<JoinHandle<()>>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl LV2Plugin {
|
|
||||||
const INPUT_BUFFER: usize = 1024;
|
|
||||||
pub fn new (uri: &str) -> Usually<Self> {
|
|
||||||
// Get 1st plugin at URI
|
|
||||||
let world = World::with_load_bundle(&uri);
|
|
||||||
let features = FeaturesBuilder { min_block_length: 1, max_block_length: 65536 };
|
|
||||||
let features = world.build_features(features);
|
|
||||||
let mut plugin = None;
|
|
||||||
if let Some(p) = world.iter_plugins().next() { plugin = Some(p); }
|
|
||||||
let plugin = plugin.expect("plugin not found");
|
|
||||||
let err = &format!("init {uri}");
|
|
||||||
let instance = unsafe { plugin.instantiate(features.clone(), 48000.0).expect(&err) };
|
|
||||||
let mut port_list = vec![];
|
|
||||||
for port in plugin.ports() {
|
|
||||||
port_list.push(port);
|
|
||||||
}
|
|
||||||
let input_buffer = Vec::with_capacity(Self::INPUT_BUFFER);
|
|
||||||
// Instantiate
|
|
||||||
Ok(Self {
|
|
||||||
world, instance, port_list, plugin, features, input_buffer, ui_thread: None
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
use crate::*;
|
|
||||||
use std::thread::{spawn, JoinHandle};
|
|
||||||
use ::winit::{
|
|
||||||
application::ApplicationHandler,
|
|
||||||
event::WindowEvent,
|
|
||||||
event_loop::{ActiveEventLoop, ControlFlow, EventLoop},
|
|
||||||
window::{Window, WindowId},
|
|
||||||
platform::x11::EventLoopBuilderExtX11
|
|
||||||
};
|
|
||||||
|
|
||||||
//pub struct LV2PluginUI {
|
|
||||||
//write: (),
|
|
||||||
//controller: (),
|
|
||||||
//widget: (),
|
|
||||||
//features: (),
|
|
||||||
//transfer: (),
|
|
||||||
//}
|
|
||||||
|
|
||||||
pub fn run_lv2_ui (mut ui: LV2PluginUI) -> Usually<JoinHandle<()>> {
|
|
||||||
Ok(spawn(move||{
|
|
||||||
let event_loop = EventLoop::builder().with_x11().with_any_thread(true).build().unwrap();
|
|
||||||
event_loop.set_control_flow(ControlFlow::Wait);
|
|
||||||
event_loop.run_app(&mut ui).unwrap()
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
|
|
||||||
/// A LV2 plugin's X11 UI.
|
|
||||||
pub struct LV2PluginUI {
|
|
||||||
pub window: Option<Window>
|
|
||||||
}
|
|
||||||
|
|
||||||
impl LV2PluginUI {
|
|
||||||
pub fn new () -> Usually<Self> {
|
|
||||||
Ok(Self { window: None })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl ApplicationHandler for LV2PluginUI {
|
|
||||||
fn resumed (&mut self, event_loop: &ActiveEventLoop) {
|
|
||||||
self.window = Some(event_loop.create_window(Window::default_attributes()).unwrap());
|
|
||||||
}
|
|
||||||
fn window_event (&mut self, event_loop: &ActiveEventLoop, id: WindowId, event: WindowEvent) {
|
|
||||||
match event {
|
|
||||||
WindowEvent::CloseRequested => {
|
|
||||||
self.window.as_ref().unwrap().set_visible(false);
|
|
||||||
event_loop.exit();
|
|
||||||
},
|
|
||||||
WindowEvent::RedrawRequested => {
|
|
||||||
self.window.as_ref().unwrap().request_redraw();
|
|
||||||
}
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn lv2_ui_instantiate (kind: &str) {
|
|
||||||
//let host = Suil
|
|
||||||
}
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
use crate::*;
|
|
||||||
|
|
||||||
impl<E: Engine> ::vst::host::Host for Plugin<E> {}
|
|
||||||
|
|
||||||
fn set_vst_plugin <E: Engine> (host: &Arc<Mutex<Plugin<E>>>, _path: &str) -> Usually<PluginKind> {
|
|
||||||
let mut loader = ::vst::host::PluginLoader::load(
|
|
||||||
&std::path::Path::new("/nix/store/ij3sz7nqg5l7v2dygdvzy3w6cj62bd6r-helm-0.9.0/lib/lxvst/helm.so"),
|
|
||||||
host.clone()
|
|
||||||
)?;
|
|
||||||
Ok(PluginKind::VST2 {
|
|
||||||
instance: loader.instance()?
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
//! TODO
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue