1
0
Fork 0
Commit graph

117 commits

Author SHA1 Message Date
Robbert van der Helm
79ab0cd7ed Add the special win32-dpi-aware feature on Windows 2022-03-05 16:02:52 +01:00
Robbert van der Helm
9267a8371c Add DPI scaling support
That hopefully works.
2022-03-05 13:37:35 +01:00
Robbert van der Helm
e2605c8cee Add transport information for VST3 and CLAP
This is available through the process context.
2022-03-04 15:05:00 +01:00
Robbert van der Helm
3e0316e17c Add missing docstrings 2022-03-03 23:34:06 +01:00
Robbert van der Helm
80457ac0f9 Fix doc links after prelude migration 2022-03-03 23:30:29 +01:00
Robbert van der Helm
f581294d7b Update rustdoc formatting for links
Apparently it showed this text verbatim, and not in monospace.
2022-03-03 23:05:12 +01:00
Robbert van der Helm
ca461d3d15 Touch up list of missing features 2022-03-03 22:27:48 +01:00
Robbert van der Helm
d688174b8b Require Send+Sync on the editor handle 2022-03-03 15:40:16 +01:00
Robbert van der Helm
17145a4482 Add a helper for initializing all block smoothers 2022-03-01 17:11:34 +01:00
Robbert van der Helm
a26ddbb45e Change CLAP_KEYWORDS to CLAP_FEATURES
This name was changed in CLAP 0.19, but in 0.18 it's still called
features.
2022-02-28 17:29:53 +01:00
Robbert van der Helm
1151a80769 Add the other CLAP metadata fields 2022-02-28 17:18:11 +01:00
Robbert van der Helm
c7f1c46f18 Add a reverse DNS ID field to ClapPlugin 2022-02-28 17:04:47 +01:00
Robbert van der Helm
d5d90e3e61 Add a ClapPlugin trait
Just like the Vst3Plugin trait
2022-02-28 14:45:07 +01:00
Robbert van der Helm
287576d064 Fix rustdoc hyperlinks 2022-02-14 14:22:57 +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
08fe8e703e Explicitly guarantee no simultaneous editors exist 2022-02-08 20:16:04 +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
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
d35957db65 Require static lifetimes on GUI contexts 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
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
9d20ca8106 Add an idea for how the IRunLoop can be integrated 2022-02-05 19:35:20 +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
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
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
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
366deda83c Add MIDI support to the sine example 2022-02-04 15:17:42 +01:00
Robbert van der Helm
0e67c61be0 Store timing along with the note events 2022-02-04 15:17:42 +01:00
Robbert van der Helm
02cf16e9c0 Accept incoming note events 2022-02-04 15:17:42 +01:00
Robbert van der Helm
aee3775c10 Add default implementations for most trait methods
Except for process()
2022-02-04 15:17:42 +01:00
Robbert van der Helm
74e0fa5964 Add defaults for some of the plugin constants 2022-02-04 15:17:42 +01:00
Robbert van der Helm
f69fdcef5f Add another plugin constant for MIDI support 2022-02-04 15:17:42 +01:00
Robbert van der Helm
82dfee9313 Document the FTZ flags in the process function 2022-02-03 16:22:32 +01:00
Robbert van der Helm
e642fb5ff8 Make sure FTZ is always enabled 2022-02-03 16:18:24 +01:00
Robbert van der Helm
13369e4085 Reinitialize the plugin after restoring state
This lets you use the parameters to set fields on the plugin struct
during `initialize()`.
2022-02-02 15:39:55 +01:00
Robbert van der Helm
c8cc6bd26b Re-export all user facing includes 2022-02-02 15:16:10 +01:00
Robbert van der Helm
f44597df7c Move the buffer adapter to its own module 2022-02-02 15:01:41 +01:00
Robbert van der Helm
048d69213e Make the buffer own the output slices
This gets rid of a lot of lifetime casting and other unsoundness.
2022-02-02 14:41:35 +01:00
Robbert van der Helm
58736f5cc8 Add a super unsafe channel buffer adapter
To avoid having to perform lifetime magic here, this buffer needs to own
the slices and be stored as part of the RwLock.
2022-02-02 13:02:28 +01:00
Robbert van der Helm
1202b2b9d6 Update unimplemented features list
These things are now all implemented.
2022-02-01 23:39:13 +01:00
Robbert van der Helm
6bb83061dd Rename the params module to param
It's a heterogeneous module, and splitting the ranges to their own
module will be a bit weird otherwise.
2022-02-01 20:51:22 +01:00
Robbert van der Helm
e2e2c59d34 Pass the process context to the plugin 2022-02-01 17:09:23 +01:00