1
0
Fork 0
Commit graph

500 commits

Author SHA1 Message Date
Robbert van der Helm 1d6a9aac74 Add a way to fetch a parameter's default value 2022-02-08 23:51:07 +01:00
Robbert van der Helm 5e65f5b77a Permissively license the egui integration crate
The widgets that are going to be there are probably going to be useful
to others and may need some modification, so this makes more sense.
2022-02-08 23:27:46 +01:00
Robbert van der Helm 19bf213204 Add alignment specifiers and soundness comment 2022-02-08 23:16:32 +01:00
Robbert van der Helm 0ddfae1dd3 Also mode the factory to its own module
Now you can finally find the thing you're looking for.
2022-02-08 22:32:54 +01:00
Robbert van der Helm 05b9d4dd0b Move the main VST3 wrapper to a module 2022-02-08 22:28:18 +01:00
Robbert van der Helm 2417f9e8c0 Remove AtomicCell re-export
This is no longer part of the public API.
2022-02-08 20:38:10 +01:00
Robbert van der Helm 07f9a18d3d Rename EguiState::open to is_open
This makes it more clear that it doesn't actually open the editor.
2022-02-08 20:33:08 +01:00
Robbert van der Helm d9ac60ae85 Only calculate peak meter while GUI is open
To show off this feature.
2022-02-08 20:28:40 +01:00
Robbert van der Helm 4260c5441c Add a way to know whether the egui editor is open 2022-02-08 20:16:39 +01:00
Robbert van der Helm 08fe8e703e Explicitly guarantee no simultaneous editors exist 2022-02-08 20:16:04 +01:00
Robbert van der Helm 57297cc04c Update the patched baseview
This version adds back Windows and macOS OpenGL context creation.
NIH-plug does not yet have a functional event loop for those platforms
though.
2022-02-08 12:38:17 +01:00
Robbert van der Helm 02115d5004 Use a patched {egui-,}baseview for X11 GL contexts 2022-02-07 21:58:59 +01:00
Robbert van der Helm 5549fd4185 Add a todo for checking for open egui GUIs 2022-02-07 11:53:09 +01:00
Robbert van der Helm 611c0a4c39 Update baseview dependencies
These got updated to use more recent dependencies.
2022-02-07 11:45:12 +01:00
Robbert van der Helm 0fb8ce6f7e Add part of a Windows event loop implementation 2022-02-07 00:33:41 +01:00
Robbert van der Helm ce37ec288e Don't store a GUID in the factory
This isn't actually needed.
2022-02-07 00:19:05 +01:00
Robbert van der Helm c9a5818cb4 Fix Windows entry point names 2022-02-06 23:37:40 +01:00
Robbert van der Helm 02614e4a5a Use absolute values for the peak meter gain
I guess I wasn't thinking too clearly when I wrote this.
2022-02-06 19:20:03 +01:00
Robbert van der Helm df76047419 Move the process context to its own module 2022-02-06 18:51:46 +01:00
Robbert van der Helm 37a8f529b0 Move WrapperView to its own module 2022-02-06 18:46:16 +01:00
Robbert van der Helm e99311097b Mention the current status in the readme 2022-02-06 18:31:49 +01:00
Robbert van der Helm 9db4c0d691 Move inner wrapper to its own module
We'll need to do this with the other parts as well. Navigating this
module has become practically impossible
2022-02-06 17:50:15 +01:00
Robbert van der Helm 427c7674b9 Move VST3 pointer check macros to a module 2022-02-06 17:40:35 +01:00
Robbert van der Helm 556bec7c0b Move editor handling to its own struct
This makes the API much, much nicer (especially consuming the egui
wrapper), and it also avoids having to lock the plugin instance which is
obviously very bad if the plugin is also supposed to be processing audio
on another thread.
2022-02-06 17:12:57 +01:00
Robbert van der Helm 3ede5ed751 Move the TODO on GUI opening xruns 2022-02-06 15:32:54 +01:00
Robbert van der Helm 3bd3696abe Put the no_alloc guard around entire process call 2022-02-06 15:24:18 +01:00
Robbert van der Helm f644ae8df8 Don't require a write lock to create an editor 2022-02-06 15:22:30 +01:00
Robbert van der Helm 67e9cae37b Explicitly close the egui-baseview window
It's supposed to do this on drop, but it doesn't seem to work.
2022-02-06 15:09:35 +01:00
Robbert van der Helm 92c090766a Add TODOs for things that need fixing 2022-02-06 15:01:19 +01:00
Robbert van der Helm eefb5e604c Actually, adjust the peak meter range to -60 dBFS
This is the same range Bitwig shows in their tiny VU meters in between
devices.
2022-02-06 14:59:13 +01:00
Robbert van der Helm 0943d54404 Adjust the peak meter normalization to -40 dBFS 2022-02-06 14:58:14 +01:00
Robbert van der Helm a95b25cd06 Tweak the peak meter display 2022-02-06 14:18:47 +01:00
Robbert van der Helm 7000e9d42e Don't propagate parameter changes while processing
Let the host do this, this would solve all unsoundness issues and
potential collisions.
2022-02-06 14:15:43 +01:00
Robbert van der Helm ea18f62d02 Always redraw egui GUIs 2022-02-06 14:09:11 +01:00
Robbert van der Helm 40d7799df9 Don't handle context in create_egui_editor
There's no need for special handling here, just let the plugin do its
own thing.
2022-02-06 14:02:55 +01:00
Robbert van der Helm a10e1e1152 Rename the VU meter to generic digital peak meter
Before I get a visit from the VU police.
2022-02-06 13:36:55 +01:00
Robbert van der Helm bad5d0ace6 Use a patched baseview with fixed window visual
Otherwise trying to embed the GUI in REAPER will panic.

https://github.com/RustAudio/baseview/pull/113
2022-02-06 13:33:28 +01:00
Robbert van der Helm 5017dad7d3 Add a semi-broken GUI example
This needs a lot of work. We need widgets that know how to deal with our
parameters, and also basic widgets for things like meters. Egui-baseview
also has a couple quirks left. Most notably it only updates when
actively moving over the GUI (which means VU meters look pretty janky)
and it randomly panics.
2022-02-06 13:16:28 +01:00
Robbert van der Helm 33ad2d0b15 Fix typo in buffer iterator 2022-02-06 12:59:29 +01:00
Robbert van der Helm c4b983baf8 Implement ExactSizeIterator for the buffer adapter 2022-02-06 12:45:13 +01:00
Robbert van der Helm 2486368d08 Use AtomicF32 for the smoothing
This should at least not have a big performance impact since we can use
relaxed memory ordering here. AtomicCell always uses acquire/release
ordering.
2022-02-06 03:43:59 +01:00
Robbert van der Helm 5e2086e1ee Add even more dependencies 2022-02-06 03:14:41 +01:00
Robbert van der Helm 4fb79c208e Add more dependencies 2022-02-06 03:00:45 +01:00
Robbert van der Helm 0514d2de96 Increase the gain smoothing time 2022-02-06 02:36:31 +01:00
Robbert van der Helm f22f1364ac Fix name of xcb package 2022-02-06 02:26:59 +01:00
Robbert van der Helm 3e29548608 Install missing dependencies on CI 2022-02-06 02:23:01 +01:00
Robbert van der Helm 53f802b295 Fix accidental gain smoothing style change 2022-02-06 02:08:58 +01:00
Robbert van der Helm 6db85c535f Move ParamSetter creation to its own struct
This cannot be called from the trait object.
2022-02-06 01:52:16 +01:00
Robbert van der Helm f1b12e747c Remove unused import 2022-02-06 01:40:25 +01:00
Robbert van der Helm df1bc2b429 Fix the printed VST3 bundle path 2022-02-06 01:35:12 +01:00