Commit Graph

1216 Commits

Author SHA1 Message Date
Robbert van der Helm d79ccc75e6 [yabridgectl] Symlink VST 3.6.10 bundle resources
Although I haven't run into any of these 'new' bundles yet. Everything's
still in the legacy format.
2020-12-24 12:47:45 +01:00
Robbert van der Helm a0098034ed [yabridgectl] Rename the Vst3Module functions
Creating a clear naming scheme here is more difficult than it should be.
2020-12-24 12:38:47 +01:00
Robbert van der Helm a3e76b3370 [yabridgectl] Warn for duplicate VST3 plugins
Since we can't have multiple plugins with the same name this way.
2020-12-24 12:31:04 +01:00
Robbert van der Helm 9d33cafd37 [yabridgectl] Allow removing orphan VST3 modules 2020-12-24 12:12:48 +01:00
Robbert van der Helm 68c95e9527 [yabridgectl] Allow skipping hash checks 2020-12-24 11:54:45 +01:00
Robbert van der Helm e19cbca5d1 Actually create the IHostApplication smart pointer 2020-12-24 00:14:58 +01:00
Robbert van der Helm 55957ca798 [yabridgectl] Allow setting up VST3 plugins
This is still missing checks for removing leftover files, symlinks for
resources and presets, and a way to differentiate between plugins with
the same name from different prefixes.
2020-12-24 00:04:05 +01:00
Robbert van der Helm bc9801c932 [yabridgectl] Add VST3 modules to the status 2020-12-23 21:55:14 +01:00
Robbert van der Helm 5e476a2f9b [yabridgectl] Add utilities for VST3 paths 2020-12-23 21:40:11 +01:00
Robbert van der Helm 8cb1518023 [yabridgectl] Index and categorize VST3 modules 2020-12-23 21:08:24 +01:00
Robbert van der Helm 3d27426b9d [yabridgectl] Index .vst3 files
It doesn't actually identify VST3 modules yet though.
2020-12-23 18:39:22 +01:00
Robbert van der Helm 3dc1b1585b [yabridgectl] Add field for indexing VST3 modules 2020-12-23 17:41:16 +01:00
Robbert van der Helm a7d284469a [yabridgectl] Locate libyabridge-vst3.so
And unify how finding files in yabridgectl works.
2020-12-23 17:12:28 +01:00
Robbert van der Helm 7a55fc3ec0 Significantly clean up mutual recursion workaround
This has much fewer moving parts, and it's probably more understandable.
There was also a race condition in the previous implementation, so
there's that.
2020-12-23 16:11:05 +01:00
Robbert van der Helm eae77d4dbf Fix num samples in processing log message 2020-12-23 12:00:31 +01:00
Robbert van der Helm 216f65d2a1 Unify log format further 2020-12-23 11:53:09 +01:00
Robbert van der Helm 3beaaf2312 Always handle IPlugView::onSize() from UI thread
This requires a super hacky workaround because the UI thread can be
currently blocked by the plugin calling `IPlugFrame::resizeView()` from
the Win32 message loop.
2020-12-22 17:36:30 +01:00
Robbert van der Helm 9ee7982591 Call IPlugView::on* from the UI thread
Since these can trigger a redraw.
2020-12-22 15:47:57 +01:00
Robbert van der Helm 9bb90388c1 Implement IPlugView::checkSizeConstraint()
With this the whole of `IPlugView` and thus also `IEditController` is
implemented.
2020-12-22 15:42:41 +01:00
Robbert van der Helm 5ef7e73725 Implement IPlugView::canResize() 2020-12-22 15:37:06 +01:00
Robbert van der Helm 656f6d3f6c Implement IPlugFrame::resizeView()
The base IPlugFrame only contains this single function.
2020-12-22 15:09:33 +01:00
Robbert van der Helm 3bc3409929 Keep track of the last created plugin view
For implementing `IPlugView::resizeView()`. This approach is safe
because there's only a single defined view type.
2020-12-22 14:27:56 +01:00
Robbert van der Helm da6ddccf07 Implement IPlugView::setFrame() 2020-12-22 14:16:00 +01:00
Robbert van der Helm 9288cdcb59 Remove support for null pointers in setHostContext
Like the other functions, null pointers are never valid here so we
shouldn't bother passing them as it only increases complexity.
2020-12-22 14:04:42 +01:00
Robbert van der Helm 3b96ffa349 Remove null pointer supported in initialize() 2020-12-22 13:59:47 +01:00
Robbert van der Helm 51876a024c Remove null pointer support in setComponentHandler
This should be an implementation fault.
2020-12-22 13:59:15 +01:00
Robbert van der Helm 37897da2b7 Destroy IPlugFrame proxy together with IPlugView
Not that we have implemented `IPlugView::setFrame()` yet, but that
should be trivial at this point.
2020-12-22 13:43:08 +01:00
Robbert van der Helm 91c4b414b0 Add a Vst3PlugFrameProxy implementation with stubs 2020-12-22 13:37:58 +01:00
Robbert van der Helm f5c75da451 Add Vst3PlugFrameProxy
For proxying the `IPlugFrame*` passed to `IPlugView::setFrame()`.
2020-12-22 13:26:54 +01:00
Robbert van der Helm 90de46428c Add an implementation wrapper for IPlugFrame 2020-12-22 13:20:49 +01:00
Robbert van der Helm 8c2801ce06 Mention the effEditIdle() change in the changelog 2020-12-22 13:11:54 +01:00
Robbert van der Helm d4d9746f69 Implement IPlugView::onFocus() 2020-12-22 00:19:23 +01:00
Robbert van der Helm 463557349d Implement IPlugView::onSize() 2020-12-21 23:46:29 +01:00
Robbert van der Helm 1aa5d5d8b4 Add note to input focus grabbing
This shouldn't be necessary for VST3, but it is.
2020-12-21 22:46:59 +01:00
Robbert van der Helm 063b480fd0 Implement IPlugView onKey{Up,Down} 2020-12-21 19:13:14 +01:00
Robbert van der Helm d49814d21d Add todo about input focus in VST3 2020-12-21 19:13:14 +01:00
Robbert van der Helm 06c55fcdd8 Implement IPlugView::onWheel() 2020-12-21 18:56:22 +01:00
Robbert van der Helm f1009f1941 Implement IPlugView::removed() 2020-12-21 18:30:42 +01:00
Robbert van der Helm 7e34cf69fe Remove Editor::handle_win32_events
This apparently isn't needed anymore.
2020-12-21 18:24:07 +01:00
Robbert van der Helm 0f43e21fc0 Remove old todos 2020-12-21 18:22:40 +01:00
Robbert van der Helm 5324e4142b Clean up proxy object construction/destruction 2020-12-21 17:59:38 +01:00
Robbert van der Helm 51877796fa Add dedicated IAudioProcessor/IComponent sockets
This way every relevant object instance will get its own thread for
handling these calls. The alternative would be creating a full fat
Vst3MessageHandler pair for all object instances, but that would be a
huge waste.
2020-12-21 17:26:30 +01:00
Robbert van der Helm 415c1b5683 Allow disabling ad-hoc socket spawning
We'll need this for handling `IAudioProcessor` method calls in VST3. We
basically want a `Vst3MessageHandler` per `IAudioProcessor` instance,
but without the additional socket spawning or extra thread.
2020-12-21 15:45:47 +01:00
Robbert van der Helm ecd0de9d7d Add todo for adding VST3 entries to changelog 2020-12-20 13:19:18 +01:00
Robbert van der Helm d14697b9fa Merge branch 'master' into feature/vst3 2020-12-20 13:15:13 +01:00
Robbert van der Helm 6ef740e0b0 Fix changelog header
Unreleased changes of coruse don't have a date
2020-12-20 13:14:22 +01:00
Robbert van der Helm af3990e5d4 Mention the libyabridge.so rename 2020-12-20 13:13:23 +01:00
Robbert van der Helm e7d2f015da Move VST3 changelog entry to [Unreleased]
It got stuck in an old release after merging.
2020-12-20 13:11:25 +01:00
Robbert van der Helm b38f272013 Run all other lifecycle events on main thread
This is probably where plugins instantiate timers for their GUI updates.
2020-12-20 12:29:59 +01:00
Robbert van der Helm f2153148b2 Construct and destruct IPlugView from GUI thread 2020-12-20 12:18:51 +01:00