Robbert van der Helm
41663a404a
Change VST3 wrapper trait bounds to Vst3Plugin
...
To be consistent with the CLAP wrapper
2022-02-28 19:21:14 +01:00
Robbert van der Helm
6d1e581c26
Partially implement clap_plugin
2022-02-28 19:16:03 +01:00
Robbert van der Helm
0511053b3b
Add stubs for the clap_plugin methods
2022-02-28 18:55:33 +01:00
Robbert van der Helm
2e6faaa324
Move plugin descriptor to its own module
...
Because we also need this in the clap_plugin implementation.
2022-02-28 18:44:03 +01:00
Robbert van der Helm
32a640acf7
Create a clap_plugin instance stub
2022-02-28 18:27:57 +01:00
Robbert van der Helm
0b0876e4a5
Remove entry point debug prints
2022-02-28 18:17:01 +01:00
Robbert van der Helm
560d5fd78f
Build the CLAP plugin descriptor
...
This requires a _lot_ of CStrings.
2022-02-28 17:46:20 +01:00
Robbert van der Helm
e718bbd0a4
Capitalize the FACTORY lazy static
...
To stop the linters from complaining.
2022-02-28 17:30:21 +01:00
Robbert van der Helm
089f1589bf
Add the remaining CLAP factory stubs
2022-02-28 16:53:31 +01:00
Robbert van der Helm
31e2480458
Begin clap objects with vtables for pointer casts
2022-02-28 16:50:37 +01:00
Robbert van der Helm
17b51c8920
Remove function pointer transmutes
2022-02-28 16:46:06 +01:00
Robbert van der Helm
0609f89df6
Create a factory stub from the entry point macro
...
From this point on we should no longer need any of these ugly macros.
2022-02-28 16:31:49 +01:00
Robbert van der Helm
51d7532b87
Add some more use path safety for the clap export
2022-02-28 15:48:26 +01:00
Robbert van der Helm
56c1545196
Add a basic nih_export_clap!() macro
...
This does not do anything useful yet.
2022-02-28 14:45:31 +01:00
Robbert van der Helm
b209c9caf3
Move the event loop to its own module
...
Now that the context module is becoming larger and larger.
2022-02-28 12:57:01 +01:00
Robbert van der Helm
0675feb54b
Keep a reference to WrapperView in WrapperInner
2022-02-27 00:51:41 +01:00
Robbert van der Helm
8ddad4e893
Store the IPlugFrame instance
2022-02-27 00:51:41 +01:00
Robbert van der Helm
95f0183d27
Add VST3 smart pointers for regular objects
2022-02-27 00:51:41 +01:00
Robbert van der Helm
dcca3f8bf4
Fix events not working in release builds
2022-02-15 23:11:50 +01:00
Robbert van der Helm
4f0e2b70b5
Rework EnumParam to be a whole lot less sketchy
...
Now it no longer needs to do any unsound type punning. The internal
parameter that the wrapper has access to has been completely type
erased, and only the outer parameter knows about enum T. This also gets
rid of strum and replaces it with a custom trait.
2022-02-14 15:34:46 +01:00
Robbert van der Helm
cf0fb039b0
Add todo about enum value serialization
2022-02-14 02:29:08 +01:00
Robbert van der Helm
39e8dfc83c
Add somewhat shady enum parameters
2022-02-14 02:04:17 +01:00
Robbert van der Helm
d878fd692a
Prefix all marker fields with underscores
2022-02-13 22:58:51 +01:00
Robbert van der Helm
ef4c2ad7f9
Add missing #[cfg(test)]
2022-02-13 16:14:26 +01:00
Robbert van der Helm
7d3beb174e
Simplify ScopedFtz
2022-02-13 13:51:02 +01:00
Robbert van der Helm
e7c3e19519
Add (miri) tests for {u16,}strlcpy()
2022-02-13 13:04:19 +01:00
Robbert van der Helm
a70edc8105
Remove now-unnecessary unsafe blocks
2022-02-13 12:47:14 +01:00
Robbert van der Helm
f645b6a92f
Relicense under the ISC license
2022-02-12 16:04:46 +01:00
Robbert van der Helm
6e1f7930e3
Fix VST3 CID consistency between platforms
2022-02-10 21:31:27 +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
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
02115d5004
Use a patched {egui-,}baseview for X11 GL contexts
2022-02-07 21:58:59 +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
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
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
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
29a9c41389
Delay the process_wrapper() use
...
The other parts also don't allocate, but parking_lot doesn't play nicely
when spawning an editor thread. In that case its hashmap may get resized
on the audio thread which is not what we want, but it won't cause any
real problems.
2022-02-06 00:51:18 +01:00
Robbert van der Helm
3c867f9305
Allow all platform constants to be unused
2022-02-06 00:22:15 +01:00
Robbert van der Helm
7a6bfa4573
Add a HasRawWindowHandle wrapper struct
2022-02-06 00:22:15 +01:00
Robbert van der Helm
b1afe0b224
Downgrade raw-window-handle for baseview compat
2022-02-06 00:22:15 +01:00
Robbert van der Helm
7b14106505
Update local parameters when changing from GUI
2022-02-05 22:26:42 +01:00
Robbert van der Helm
7e240146b7
Implement IPlugView
2022-02-05 18:42:06 +01:00