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
Robbert van der Helm
36c2d877c2
Handle X11 events in Vst3Bridge
2020-12-19 23:55:21 +01:00
Robbert van der Helm
960e2d50d1
Implement IPlugView::getSize()
2020-12-19 23:46:45 +01:00
Robbert van der Helm
09f6d93214
Implement IPlugView::attached()
2020-12-19 23:31:41 +01:00
Robbert van der Helm
49fc896d62
Remove Win32 effEditIdle() timer
...
Now Editor is completely decoupled from VST2.
2020-12-19 23:30:47 +01:00
Robbert van der Helm
e72e6d5642
Implement IPlugView::isPLatformTypeSupported()
...
This of course requires us to substitute the relevant Linux platform
type for the Win32 one.
2020-12-19 22:34:56 +01:00
Robbert van der Helm
18a7908bf8
Fix typo in stub todo messages
2020-12-19 22:19:33 +01:00
Robbert van der Helm
7306809991
Drop IPlugView pointer when host drops proxy
2020-12-19 22:17:10 +01:00
Robbert van der Helm
b7047a5281
Implement IEditController::createView()
...
Even though `Vst3PlugViewProxyImpl` is still only stubs,
`IEditController` is now fully implemented.
2020-12-19 21:07:36 +01:00
Robbert van der Helm
ae057a0acf
Add stubs for a Vst3PlugViewProxy implementation
2020-12-19 20:58:34 +01:00
Robbert van der Helm
f0ece64018
Implement the Wine side for createView()
2020-12-19 20:41:06 +01:00
Robbert van der Helm
e391bbccb7
Add Vst3PlugViewProxy
2020-12-19 20:18:45 +01:00
Robbert van der Helm
76a1ed6082
Add an IPlugView wrapper
2020-12-19 20:09:04 +01:00
Robbert van der Helm
a724b378fe
Move the editor handling back to Vst2Bridge
...
Since we can have multiple editors in Vst3Bridge.
2020-12-19 19:56:49 +01:00
Robbert van der Helm
b422f6fd42
Don't cache IComponent::getControllerClassId()
...
For the same reasons as the last commit. Now we don't have any of these
cached methods anymore.
2020-12-19 18:56:47 +01:00