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
Robbert van der Helm
703b6d9285
Add functions to schedule tasks in main IO context
2020-12-20 12:18:51 +01:00
Robbert van der Helm
66450407f0
Instantiate the editor within the main context
...
Otherwise it of course won't work.
2020-12-20 00:34:51 +01:00