Robbert van der Helm
8f91ecf247
Silence bool_to_int_with_if clippy lint
2022-11-05 14:19:47 +01:00
Robbert van der Helm
6eccabb701
Allow basic CLAP MIDI msgs with MidiConfig::Basic
...
This is needed for Qtractor compatibility. Even though it always sends
notes as CLAP events, it requires the plugin to support both the CLAP
and the MIDI note event dialects. Otherwise it won't send any notes at
all. Feature, not a bug.
2022-11-05 14:19:47 +01:00
Robbert van der Helm
f48b36f2a7
Add Persist implementations for Arc wrapped types
2022-11-05 14:19:32 +01:00
Robbert van der Helm
560f97f77d
Use Mutex instead of RwLock for gain example
...
Neither makes a lot of sense here, but RwLock makes even less sense.
2022-11-05 14:19:32 +01:00
Robbert van der Helm
a0ca80297b
Add Persistent implementations for atomics
2022-11-05 14:19:32 +01:00
Robbert van der Helm
23f4fd6fc5
Rearrange persist module
2022-11-05 14:19:32 +01:00
Robbert van der Helm
8c25d8b092
Don't cache the target directory
...
This seems to cause the Windows CI runner to blow up.
2022-11-05 14:19:20 +01:00
Robbert van der Helm
d737c5098f
Update Vizia
...
This should fix transitions.
2022-11-05 14:18:20 +01:00
Robbert van der Helm
fc9e521a85
Fix potential VST3 parking_lot allocation failure
...
This can happen when the process function is called from a new thread or
when a new thread has been spawned.
2022-11-04 15:00:45 +01:00
Robbert van der Helm
439b9d0bbb
Use an older pre-rebase jack commit
...
The current version of the jack crate always links to libjack, even when
using the dynamic loading feature.
2022-11-03 03:20:04 +01:00
Robbert van der Helm
6c0df7ec39
Fix typo in pos_seconds documentation
2022-11-03 03:08:28 +01:00
Robbert van der Helm
cec0a7a8a5
Prevent GitHub actions caches from blowing up
...
This would cause Windows builds to fail because they run out of disk
space.
2022-10-30 14:43:42 +01:00
Robbert van der Helm
456655b269
Use the clap_plugin::plugin_data field
...
Instead of relying on the struct layout and doing raw pointer casts. We
still need to do this for the CLAP plugin factory though.
2022-10-30 14:18:18 +01:00
Robbert van der Helm
36bf46f569
Fix setProcessing() in Ardour when setting latency
2022-10-25 17:47:36 +02:00
Robbert van der Helm
8b47f90dd7
Fix setActive() in Ardour when setting latency
2022-10-25 17:38:51 +02:00
Robbert van der Helm
b604fed700
Update vizia
...
Yet Another femtovg fix.
2022-10-25 16:19:33 +02:00
Robbert van der Helm
435fcd8106
Fix CLAP modulation
...
This was a regression introduced in
c566888fa3
.
2022-10-24 23:56:49 +02:00
Robbert van der Helm
6c2bb154c9
Use latest nightly for automated builds
...
nightly-2022-07-15 suddenly started throwing ICEs/compiler panics after
updating the dependencies.
2022-10-23 22:45:02 +02:00
Robbert van der Helm
821bb90194
Update vizia, cpal, and other dependencies
...
Vizia wouldn't compile anymore because of mixed create versions in
femtovg, so the fork had to be updated. cpal had a similar thing with
nix and alsa.
2022-10-23 22:32:47 +02:00
Robbert van der Helm
ba9e9253f2
Clean up Plugin trait doc comment
2022-10-23 16:33:20 +02:00
Robbert van der Helm
f42b2d55f9
Clarify Plugin trait background task docs
2022-10-23 16:32:15 +02:00
Robbert van der Helm
3032300bcf
Clarify task scheduling doc comments
2022-10-23 16:29:30 +02:00
Robbert van der Helm
0dd3bfe4e7
Allow running tasks on a dedicated thread
...
Independent of the GUI thread, which is also still an option. This is
useful for long running IO jobs that might otherwise block the GUI for
long enough to be noticeable.
2022-10-23 16:23:20 +02:00
Robbert van der Helm
028aeed18e
Add a schedule_background() EventLoop method
2022-10-23 16:19:49 +02:00
Robbert van der Helm
520eba71ca
Add a simple background thread task runner
...
This can be used by the Windows event loop, the future macOS event loop,
and the CLAP event loop.
2022-10-23 16:14:35 +02:00
Robbert van der Helm
dbb97f0534
Use channels for Windows event loop
...
Instead of an `ArrayQueue`. Since this doesn't need to both send and
receive on the same object.
2022-10-23 15:52:14 +02:00
Robbert van der Helm
31cda78201
Rename do_maybe_async() to schedule_gui()
2022-10-23 15:48:27 +02:00
Robbert van der Helm
4524719128
Add an is_gui_thread flag to MainThreadExecutor
...
We'll also use the EventLoop for running background tasks completely
decoupled from the GUI.
2022-10-23 15:48:27 +02:00
Robbert van der Helm
967426453a
Clean up EventLoop API
...
By taking an `Arc<T>` instead of a `Weak<T>`. The `Weak` is only needed
for the background threads.
2022-10-23 15:48:27 +02:00
Robbert van der Helm
21bfb57023
Rename execute_async() to execute_gui()
...
We'll have another function that uses a dedicated background thread.
2022-10-23 13:58:33 +02:00
Robbert van der Helm
5d84800c0c
Manually implement Clone for AsyncExecutor
2022-10-22 15:32:42 +02:00
Robbert van der Helm
63db56fa68
Make AsyncExecutor Send+Sync
...
Otherwise actually using this will be a bit difficult.
2022-10-22 15:10:34 +02:00
Robbert van der Helm
c980576102
Add an AsyncExecutor for editor GUIs
...
This is decoupled form `GuiContext` as that would require invasive
changes all over the place.
2022-10-22 15:05:39 +02:00
Robbert van der Helm
f3bb816cb5
Add an AsyncExecutor type for use with the GUI
2022-10-22 14:34:32 +02:00
Robbert van der Helm
b676353589
Split the nih_plug::context module
...
So that structs are more logically grouped with their traits.
2022-10-22 14:19:10 +02:00
Robbert van der Helm
faa9742eee
Rearrange the wrapper context modules
...
This matches the order in `src/context.rs`.
2022-10-22 14:15:49 +02:00
Robbert van der Helm
b1f24bfad9
Reorder Context methods
2022-10-22 13:13:08 +02:00
Robbert van der Helm
5a974219b8
Remove Sync bound from TaskExecutor
2022-10-22 12:31:54 +02:00
Robbert van der Helm
f6ad85de01
Make per-day breaking changes order chronological
...
This probably makes more sense when reading these. This isn't Twitter.
2022-10-22 12:27:59 +02:00
Robbert van der Helm
8b53ca2ab0
Mention duplicate tasks in execute_async()
2022-10-22 02:30:13 +02:00
Robbert van der Helm
5ea2377c18
Replace AsyncExecutor with simple closure
...
This makes everything much simpler. The task type is now defined
directly on `Plugin`.
2022-10-22 02:01:03 +02:00
Robbert van der Helm
84f834abb6
Add AsyncExecutor support to ProcessContext
2022-10-22 02:01:03 +02:00
Robbert van der Helm
ec8e99cf44
Require AsyncExecutor tasks to be Send
2022-10-22 00:55:04 +02:00
Robbert van der Helm
6ffa23971e
Add AsyncExecutor support to InitContext
2022-10-22 00:21:08 +02:00
Robbert van der Helm
0d90969566
Remove unnecessary deref
2022-10-22 00:14:13 +02:00
Robbert van der Helm
297ad2a83e
Add an AsyncExecutor associated type to Plugin
...
This will make it possible to run background tasks in a type safe way.
Sadly, this does mean that every plugin now needs to define the type
alias and constructor function since Rust does not yet support defaults
for associated types.
2022-10-21 23:52:46 +02:00
Robbert van der Helm
25d20f1950
Add an AsyncExecutor trait for background tasks
2022-10-21 23:52:29 +02:00
Robbert van der Helm
558922c9a9
Add missing doc comments in Plugin
2022-10-21 23:34:59 +02:00
Robbert van der Helm
71d46b42e9
Mention state migrations in readme
2022-10-21 23:23:13 +02:00
Robbert van der Helm
6ee3aafa91
Move Editor and ParentWindowHandle to a new module
2022-10-21 23:12:05 +02:00