1
0
Fork 0
Commit graph

1792 commits

Author SHA1 Message Date
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
Robbert van der Helm 34cc1ba30b Use a vst3-sys fork to fix unused Box::from_raw
https://github.com/RustAudio/vst3-sys/pull/52
2022-10-20 16:31:13 +02:00
Robbert van der Helm 46094e5249 Explicitly drop Arc::from_raw 2022-10-20 16:28:58 +02:00
Robbert van der Helm f9bdaffc62 Don't require Sync for Plugin
In hindsight there's really no reason to, because process() requires
exclusive access and the other functions won't be called during
processing.
2022-10-20 16:12:50 +02:00
Robbert van der Helm 8765717793 Allow opting out of egui's default features
Since I don't think there's a way to opt out of features from another
Cargo.toml file. You'll still need to enable `nih_plug_egui`'s `opengl`
feature if you disable its default features.
2022-10-20 15:58:20 +02:00
Robbert van der Helm 34fd3a1c2a Add PayPal and Liberapay links
By popular demand. But definitely don't feel obliged to donate anything!
2022-10-20 15:47:48 +02:00
Robbert van der Helm 375262aaa3 Also drop Sync requirement for editor handles 2022-10-20 14:41:53 +02:00
Robbert van der Helm a2a52e0ff1 Drop Sync requirement for Editor 2022-10-20 14:31:48 +02:00
Robbert van der Helm eed5a62abb Add build closure parameter to create_egui_editor 2022-10-20 14:04:08 +02:00