1
0
Fork 0
Commit graph

251 commits

Author SHA1 Message Date
Robbert van der Helm
df1bc2b429 Fix the printed VST3 bundle path 2022-02-06 01:35:12 +01:00
Robbert van der Helm
bf070fce5a Use atomics in the smoother
This is needed so we can share the params with the editor, but it isn't
great, is there a better alternative?
2022-02-06 01:33:19 +01:00
Robbert van der Helm
47b6631283 Revert "Initialize the egui GUI using the update function"
This reverts commit 5c9ac31408.
2022-02-06 01:02:26 +01:00
Robbert van der Helm
cc3d2bcba0 Re-export egui 2022-02-06 00:54:13 +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
5c9ac31408 Initialize the egui GUI using the update function 2022-02-06 00:51:02 +01:00
Robbert van der Helm
021c183331 Add an egui editor adapter 2022-02-06 00:22:33 +01:00
Robbert van der Helm
d35957db65 Require static lifetimes on GUI contexts 2022-02-06 00:22:15 +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
4021b28155 Fix rustdoc links 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
83c3410736 Don't require Send+Sync on the editor 2022-02-05 20:48:21 +01:00
Robbert van der Helm
75435ecb4a Don't require a Drop bound on Editor
On second thought, unless you're implementing something completely from
scratch this will already be part of the library you're using.
2022-02-05 20:15:09 +01:00
Robbert van der Helm
5a84733e7e Add more metadata to the Cargo.toml file 2022-02-05 19:40:42 +01:00
Robbert van der Helm
9d20ca8106 Add an idea for how the IRunLoop can be integrated 2022-02-05 19:35:20 +01:00
Robbert van der Helm
7e240146b7 Implement IPlugView 2022-02-05 18:42:06 +01:00
Robbert van der Helm
895dada6f6 Add window type constants missing from vst3_sys 2022-02-05 18:41:54 +01:00
Robbert van der Helm
2a0fde2fd5 Create a plugview if the plugin has an editor
The plugview, however, is still filled with stubs.
2022-02-05 18:07:03 +01:00
Robbert van der Helm
ea8edf2563 Move the editor to the IPlugView instance
This way the RAII make much more sense.
2022-02-05 18:06:52 +01:00
Robbert van der Helm
4c5622cf40 Implement GuiContext for the VST3 wrapper 2022-02-05 17:47:55 +01:00
Robbert van der Helm
640fe0ebd7 Make parameter pointers hashable
So we can use have generic APIs that take a `Param` implementation and
know how to map those to the parameter IDs used by the plugin API.
2022-02-05 17:43:15 +01:00
Robbert van der Helm
e97082aba2 Implement the ParamSetter 2022-02-05 17:32:57 +01:00
Robbert van der Helm
0bc8f9b5b1 Move preview_{normalized,plain} to Param
We're going to need this for setting parameter values with a gneric API.
2022-02-05 17:32:06 +01:00
Robbert van der Helm
9d2ddf016a Add Editor and GuiContext stubs in VST3 wrapper 2022-02-05 17:15:07 +01:00
Robbert van der Helm
41d9e43047 Mention the stable compiler target in the readme 2022-02-05 17:14:28 +01:00
Robbert van der Helm
42155903ec Add the workflow status badge 2022-02-05 17:13:07 +01:00
Robbert van der Helm
b075d1b1bb Modify the editor API to use trait objects
The alternative isn't really feasible without specialization, and
NIH-plug should work on the stable compiler.
2022-02-05 17:12:03 +01:00
Robbert van der Helm
e4c6c6c25b Update the documentation on the updated GuiContext 2022-02-05 17:10:17 +01:00
Robbert van der Helm
eded48977f Cache Cargo dependencies and artifacts 2022-02-05 16:50:11 +01:00
Robbert van der Helm
3e2dc92b22 Avoid destructuring assignment
Somehow the nightly compiler just lets you do this without needing to
opt in to the unstable feature.
2022-02-05 16:46:29 +01:00
Robbert van der Helm
7c74d1f41d Add a GitHub Actions workflow for running tests 2022-02-05 16:40:42 +01:00
Robbert van der Helm
fe96b8572e Type erase GuiContext by splitting the safe API
These functions not being able to be made into an object was the whole
reason why we needed the associated type in the first place. This will
make everything much nicer to work with, since
specialization/overlapping instances is still not possible with the
stable compiler.
2022-02-05 16:30:33 +01:00
Robbert van der Helm
1f2029ecbe Replace spawn_unchecked with static lifetimes
These things don't need to hold references, so this gets rid of some
nasty c ode.
2022-02-05 16:09:59 +01:00
Robbert van der Helm
1e77a92285 Require plugins to be 'static
They can't contain any references anyways since they're default
initialized. If they don't have a 'static lifetime, then it won't be
possible to pass a trait object casted from the inner wrapper to the
plugin.
2022-02-05 16:03:16 +01:00
Robbert van der Helm
78a83d5051 Allow unused variables in trait defaults 2022-02-05 13:32:03 +01:00
Robbert van der Helm
d2407db284 Replace editor close function with a Drop bound 2022-02-05 13:06:18 +01:00
Robbert van der Helm
b901dac012 Disambiguate rustdoc link references 2022-02-05 12:56:03 +01:00
Robbert van der Helm
63d30d33e4 Fix rustdoc links 2022-02-05 12:52:34 +01:00
Robbert van der Helm
7ac1df0d8d Add stubs for editor handling 2022-02-05 12:46:26 +01:00
Robbert van der Helm
bbc190c67f Hold the RwLock guard in the process context
This avoids having to constantly acquire a new lock.
2022-02-04 23:03:11 +01:00
Robbert van der Helm
ce3da8ea44 Use a dedicated struct for the process context 2022-02-04 22:55:10 +01:00
Robbert van der Helm
209c19b74f Get rid of lifetime parameters for VST3 wrapper
This lifetime didn't make any sense anyways since these buffers don't
adhere to Rust's lifetime rules. Getting rid of these will let us make
nicer wrappers around the process context.
2022-02-04 22:54:28 +01:00
Robbert van der Helm
cbd51b0c3a Monomorphize the context variables
For the parameter setting context functions we don't be able to use
trait objects.
2022-02-04 22:34:53 +01:00
Robbert van der Helm
f2d3d987a0 Update the current MIDI support status 2022-02-04 22:31:43 +01:00
Robbert van der Helm
a93ad650be Remove old todo 2022-02-04 19:04:36 +01:00
Robbert van der Helm
4c0031d7b3 Fix clippy lints 2022-02-04 18:42:42 +01:00
Robbert van der Helm
2c0b797c40 Avoid clicks in the MIDI sine example 2022-02-04 15:26:37 +01:00
Robbert van der Helm
073fe743c2 Split up set_target and reset in smoothers
This makes it a bit less awkward to use in user code, if you need a
separate smoother there.
2022-02-04 15:17:42 +01:00