1
0
Fork 0
Commit graph

49 commits

Author SHA1 Message Date
Robbert van der Helm 65d87f87ed Add a way to output note events
This supports all note events supported by NIH-plug, and both CLAP and
VST3.
2022-04-11 20:46:51 +02:00
Robbert van der Helm 8219d5f2b8 Add an example for next_event() 2022-04-11 18:25:01 +02:00
Robbert van der Helm e4606918e7 Rename next_midi_event() to next_event() 2022-04-11 18:15:14 +02:00
Robbert van der Helm c3b1ded35b Fix links in docs 2022-04-11 16:23:34 +02:00
Robbert van der Helm 24837d1552 Implement full MIDI support for CLAP 2022-04-07 23:28:31 +02:00
Robbert van der Helm 2af3f84416 Rename State to PluginState
Now that it is part of the public API.
2022-04-07 17:39:34 +02:00
Robbert van der Helm d0064f87d6 Add state saving and restoring through GuiContext
While preventing any possible data races.
2022-04-07 17:19:24 +02:00
Robbert van der Helm f9db59f4bc Add a resize request callback to VST3 GuiContext
With some more work in baseview this can be used to resize windows from
the plugin.
2022-03-27 19:23:43 +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 64950055ea Implement most of the iced ParamSlider for Vizia 2022-03-19 01:17:13 +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 713e778117 Add a Default implementation for the transport 2022-03-04 14:32:23 +01:00
Robbert van der Helm a483dbc6a6 Add a Transport struct with conversion methods
We'll add this to the ProcessContext in a bit.
2022-03-04 14:25:38 +01:00
Robbert van der Helm 99f97978a9 Reorder ProcessContext methods
When we'll add more things here the more common getters should come
first and less common operations like changing latency should come last.
2022-03-04 13:22:58 +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 4c0b07c578 💥 Move re-exports to a prelude module
So you can import everything at once, because you're likely going to
need at least 90% of it anyways.
2022-03-03 23:23:51 +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 a268d71eee Add a note on snapping normalized values 2022-03-01 01:02:00 +01:00
Robbert van der Helm 08d63f0e73 Fix typo 2022-03-01 00:06:22 +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 6fbec6393d Include the Linux event loop module on macOS 2022-02-15 21:31:02 +01:00
Robbert van der Helm b7904126ac Allow the Linux event loop on macOS 2022-02-15 21:25:55 +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 69498f3527 Implement the event loop for Windows 2022-02-10 23:37:59 +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 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 0fb8ce6f7e Add part of a Windows event loop implementation 2022-02-07 00:33:41 +01:00
Robbert van der Helm 6db85c535f Move ParamSetter creation to its own struct
This cannot be called from the trait object.
2022-02-06 01:52:16 +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 4021b28155 Fix rustdoc links 2022-02-06 00:22:15 +01:00
Robbert van der Helm e97082aba2 Implement the ParamSetter 2022-02-05 17:32:57 +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 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 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 fdfd1b01c2 Add a function for retrieving the next note event 2022-02-04 15:17:42 +01:00
Robbert van der Helm bc60dc35b6 Fix rustdoc references 2022-02-01 20:53:20 +01:00
Robbert van der Helm 15e0f6f21a Remove unnecessary import
I was going to add that set_parameter function in the next commit, but
that will need to wait a bit.
2022-02-01 19:54:35 +01:00
Robbert van der Helm 3a1fbed4c3 Mark MainThreadExecutor::execute as unsafe
This should only be called from the main thread. Otherwise the API's
threading guarantees will not be upheld.
2022-02-01 17:01:05 +01:00
Robbert van der Helm 565d9259c3 Use weak references to the executor
So this cyclic reference can't keep it alive.
2022-02-01 15:31:16 +01:00
Robbert van der Helm b15991a495 Add a todo and stub for setting parameter values 2022-02-01 00:01:52 +01:00
Robbert van der Helm 735cec4fba Update context docs 2022-02-01 00:01:43 +01:00
Robbert van der Helm f009384c2f Don't require Arcs for ProcessContext
It makes more sense to pass this as a reference, so the plugin cannot do
weird things with it.
2022-01-31 23:47:54 +01:00
Robbert van der Helm 2380768bad Add a Linux-specific event loop
Implementations for Windows and macOS should be fairly similar, but
using the OS' message loop instad of a thread.
2022-01-31 19:45:11 +01:00