1
0
Fork 0
Commit graph

19 commits

Author SHA1 Message Date
Robbert van der Helm
083885a40c Rework Params trait API with Arc instead of Pin
This is a breaking change requiring a small change to plugin
implementations.

The reason why `Pin<&dyn Params>` was used was more as a hint to
indicate that the object must last for the plugin's lifetime, but `Pin`
doesn't enforce that. It also makes the APIs a lot more awkward.
Requiring the use of `Arc` fixes the following problems:

- When storing the params object in the wrapper, the `ParamPtr`s are
  guaranteed to be stable.
- This makes it possible to access the `Params` object without acquiring
  a lock on the plugin, this is very important for implementing
  plugin-side preset management.
- It enforces immutability on the `Params` object.
- And of course the API is much nicer without a bunch of unsafe code to
  work around Pin's limitations.
2022-04-07 15:31:46 +02:00
Robbert van der Helm
5caca30f83 Work around ICE for cargo doc+nih_plug_iced 2022-03-27 03:24:39 +02:00
Robbert van der Helm
f084f14095 Refactor GUIs to use param's own default value
This removes the need to pass a lot of these `ParamSetter`s and
`GuiContext`s around. We also don't need explicit events to reset a
parameter anymore since you can get this information from the parameter
itself.
2022-03-21 13:11:36 +01:00
Robbert van der Helm
0b3e7708a6 Add a usage example to nih_plug_iced 2022-03-15 13:47:35 +01:00
Robbert van der Helm
cf1314ce53 Update iced_baseview
Now the window always redraws no matter what.
2022-03-14 19:20:05 +01:00
Robbert van der Helm
93990d604b Provide iced constants for fonts 2022-03-14 15:56:11 +01:00
Robbert van der Helm
95827afc81 Use Noto Sans instead of the default Lato 2022-03-14 15:50:29 +01:00
Robbert van der Helm
4e9ee27c19 Finish the drawing for the iced param slider 2022-03-14 13:17:19 +01:00
Robbert van der Helm
291abb8bcf Add a placeholder for a parameter slider widget 2022-03-14 00:53:22 +01:00
Robbert van der Helm
99d1ee7c0f Fix anti aliasing setting with iced OpenGL 2022-03-13 20:14:18 +01:00
Robbert van der Helm
fe1db50678 Update iced_baseview dependency 2022-03-13 19:07:51 +01:00
Robbert van der Helm
1fa2b5f74f Add an Editor callback to notify parameter changes
This will be needed to allow iced to be reactive in our model.
2022-03-13 18:03:23 +01:00
Robbert van der Helm
55e9153811 Enable anti-aliasing by default 2022-03-13 15:09:04 +01:00
Robbert van der Helm
9f8bdfcfc4 Add a dedicated message and handler for parameters
Parameter widgets can send these messages to update parameters.
2022-03-13 15:09:04 +01:00
Robbert van der Helm
43590db8d0 Document create_iced_editor() 2022-03-13 01:10:45 +01:00
Robbert van der Helm
1213d59ae7 Use new IcedEditor trait that forwards GuiContext 2022-03-13 01:07:41 +01:00
Robbert van der Helm
3ebe34c870 Add most bits and pieces for iced support 2022-03-12 23:15:33 +01:00
Robbert van der Helm
cd5a4f01bf Mirror the flags and re-exports from iced_baseview 2022-03-12 22:24:01 +01:00
Robbert van der Helm
ff9e0f2ddf Add an empty crate for iced support 2022-03-12 22:11:37 +01:00