UI Remake
You are going to hate me for this
I do
I do
Thanks. And I am not even half done :)
Bookmarks
Winit stuff
(Basically updated to 0.30 which requires a struct for the application instead of an event loop closure)
Vulkano stuff
(Updated to 0.34)
- swapchain.rs
- scenes.rs
- cake_system/mod.rs (Made some more changes to this after your commit to fix the viewport not being resized and some other issues with note layering)
- note_list_system/mod.rs (Same as above)
- notes_render_pass.rs (Same as above)
Settings/Config
-
mod.rs (Remade the layout and made it immune to invalid and nonexistent values using
#[serde(default)]) - enums.rs (I put all the settings related enums and their implementations there)
- migrations (Moved v0 and v1 migrations to this folder)
Audio/Synthesizer
-
mod.rs (Implement trait for supported synthesizers and hold it inside a struct using
Box<dyn ...>to be used within the app. One concern is the performance hit from using a Box) - xsynth.rs
-
midiout.rs (Added support for MIDI Out devices using the
midircrate. Devices are being looked up using their registered name) -
kdmapi.rs (Forked your crate for this so I could use Results instead of panics and to implement the
LoadCustomSoundFontsListmethod to load Wasabi's SF list) - empty.rs (Synth that doesn't do anything, I use this for unloading the previous synth before loading a new one to avoid KDMAPI errors, and I also gave it as an option if someone doesn't want audio)
GUI Highlights
-
window.rs
- (L154, L165: I am using crossbeam to select and load MIDIs so the main UI does not freeze while doing so)
- (L361: File picker method)
- (L385: MIDI loader method)
- errors.rs (Error types for Wasabi. Also implemented a UI message system for it to show errors in windows)
- fps.rs (Kind of remade this for FPS limiting)
MIDI
- mod.rs (L131: Loading colors from image palette + randomizing)
- timer.rs (Keep the start delay value in the struct since it can now be set from the settings)
Misc
- state.rs (Mostly to highlight that the synth is stored there for easier passing around)
- utils.rs
- build.yml (Changed filenames for the built-in updater to work properly & added ARM Windows build)
Other changes not listed here are either long egui code or changes in other files to reflect any method changes mentioned above)
@arduano Made most of the changes requested. I'll wait for clarifications on the other comments before I fix the rest
@arduano Will fix that and merge. I also created issues about the rest we discussed that needs to be fixed and added everything in a milestone for 1.0.0. Let me know if this is ok or if there is something else we need to look at.
Nothing off the top of my head