Robbert van der Helm
9dfac991c8
Also reset parameters with Ctrl+Click
2022-02-09 11:51:42 +01:00
Robbert van der Helm
fe3ea5d9f8
Don't change a parmeter if it wouldn't do anything
2022-02-09 11:51:30 +01:00
Robbert van der Helm
cd683187e0
Allow resetting parameters by double clicking
2022-02-09 11:51:30 +01:00
Robbert van der Helm
882ba8f61d
Don't use smart aim
...
Probably not needed here
2022-02-09 11:36:10 +01:00
Robbert van der Helm
8e7a86262f
Handle parameter edit begin and release
2022-02-09 11:34:58 +01:00
Robbert van der Helm
a1c6d1d30a
Scale the dragged slider color based on original
2022-02-09 11:32:19 +01:00
Robbert van der Helm
7a50cc3383
Add HSV scaling utilities
2022-02-09 11:31:59 +01:00
Robbert van der Helm
dbc6bf993b
Don't fill the slider if it's empty
2022-02-09 11:19:49 +01:00
Robbert van der Helm
e2524a2d81
Handle stepped non-float parameters
...
The widget now snaps to the correct range. This would always be
displayed this way internally, but now we also won't tell the host about
the invalid values.
2022-02-09 11:18:38 +01:00
Robbert van der Helm
46a7d8a261
Make the ParamSlider generic over all param types
2022-02-09 11:13:51 +01:00
Robbert van der Helm
857cf876e8
Add the beginnings of a parameter slider widget
2022-02-09 01:07:57 +01:00
Robbert van der Helm
0633fddb5c
Add a function for setting pre-normalized values
2022-02-09 01:07:17 +01:00
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