diff --git a/plugins/cagire-plugins/src/editor.rs b/plugins/cagire-plugins/src/editor.rs index ff0f793..813a529 100644 --- a/plugins/cagire-plugins/src/editor.rs +++ b/plugins/cagire-plugins/src/editor.rs @@ -27,7 +27,7 @@ use cagire::model::{Dictionary, Rng, Variables}; use cagire::theme; use cagire::views; -use cagire::input_egui::{convert_egui_events, convert_egui_mouse}; +use cagire::input_egui::{convert_egui_events, convert_egui_mouse, EguiMouseState}; use crate::params::CagireParams; use crate::PluginBridge; @@ -141,6 +141,7 @@ struct EditorState { last_frame: Instant, current_font: FontChoice, zoom_factor: f32, + egui_mouse: EguiMouseState, } // SAFETY: EditorState is only accessed from the GUI thread via RwLock. @@ -210,6 +211,7 @@ pub fn create_editor( last_frame: Instant::now(), current_font: FontChoice::Size8x13, zoom_factor: 1.0, + egui_mouse: EguiMouseState::default(), } }); @@ -248,7 +250,7 @@ pub fn create_editor( let term = editor.terminal.get_frame().area(); let widget_rect = ctx.content_rect(); - for mouse in convert_egui_mouse(ctx, widget_rect, term) { + for mouse in convert_egui_mouse(ctx, widget_rect, term, &mut editor.egui_mouse) { let mut input_ctx = InputContext { app: &mut editor.app, link: &editor.link, diff --git a/plugins/cagire-plugins/src/lib.rs b/plugins/cagire-plugins/src/lib.rs index cad61dd..11211dc 100644 --- a/plugins/cagire-plugins/src/lib.rs +++ b/plugins/cagire-plugins/src/lib.rs @@ -328,6 +328,11 @@ impl Plugin for CagirePlugin { AudioCommand::LoadSamples(samples) => { engine.sample_index.extend(samples); } + AudioCommand::LoadSoundfont(path) => { + if let Err(e) = engine.load_soundfont(&path) { + eprintln!("Failed to load soundfont: {e}"); + } + } } } diff --git a/src/bin/desktop/main.rs b/src/bin/desktop/main.rs index ae1ea27..12035eb 100644 --- a/src/bin/desktop/main.rs +++ b/src/bin/desktop/main.rs @@ -1,3 +1,5 @@ +#![windows_subsystem = "windows"] + use std::sync::atomic::{AtomicBool, AtomicI64, AtomicU32, AtomicU64, Ordering}; use std::sync::Arc; use std::time::Duration;