Commit Graph

427 Commits

Author SHA1 Message Date
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 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 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 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 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 063b480fd0 Implement IPlugView onKey{Up,Down} 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 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 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 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 7306809991 Drop IPlugView pointer when host drops proxy 2020-12-19 22:17:10 +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 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
Robbert van der Helm 63ae5f330c Don't cache IHostApplication::getName()
As it turns out there are only two or three functions where we can do
this. It also breaks logging, and this function will probably only be
called once anyways. More consistency is always better.
2020-12-19 18:28:16 +01:00
Robbert van der Helm 85faca736f Add a todo for removing cached functions 2020-12-19 17:19:01 +01:00
Robbert van der Helm 0522f84f4a Create Vst3HostContextProxy from YaHostApplication
This is quite a huge refactor, but note everything is consistent (and
we're going to need one or two more of these `Vst3*Proxy` objects).
Right now nothing extends `IHostApplication`, but this way it will be
trivial to add support for more host context interfaces.
2020-12-19 17:13:17 +01:00
Robbert van der Helm c970093b5e Add todo about creating a Vst3HostContextProxy 2020-12-19 16:05:04 +01:00
Robbert van der Helm 1b454371a6 Implement IComponentHandler::restartComponent()
The base IComponentHandler is now fully implemented.
2020-12-19 15:51:48 +01:00
Robbert van der Helm 25575e2d3a Implement IComponentHandler::endEdit() 2020-12-19 15:48:06 +01:00
Robbert van der Helm bb99a539d5 Implement IComponentHandler::performEdit() 2020-12-19 15:45:24 +01:00
Robbert van der Helm 3b06bca95e Implement IComponentHandler::beginEdit() 2020-12-19 15:39:03 +01:00
Robbert van der Helm bf3d802f36 Implement IEditController::setComponentHandler() 2020-12-19 15:04:27 +01:00
Robbert van der Helm 132ba0baeb Add stubs for a component handler proxy impl 2020-12-19 14:37:50 +01:00
Robbert van der Helm f816b5ad5d Add IComponentHandler to Vst3ComponentHandlerProxy 2020-12-19 14:27:50 +01:00
Robbert van der Helm 54e73d2d19 Split YaEditController into YaEditController{,2}
Since even though the title would make you assume it's a versioned
interface, it's not.
2020-12-19 14:19:37 +01:00
Robbert van der Helm 9bca4796a5 Add boilerplate for Vst3ComponentHandlerProxy 2020-12-19 14:08:41 +01:00
Robbert van der Helm 7e3568e333 Rename YaEditController2 to YaEditController
Adding versions to our implementations doesn't work when the versions
and extensions start becoming non-numerical. This is what happened with
`IComponentHandler`.
2020-12-19 13:49:00 +01:00
Robbert van der Helm 1ede385784 Clean up YaHostApplication 2020-12-19 13:40:37 +01:00
Robbert van der Helm be78ff50be Update Ya*::ConstructArgs docstrings 2020-12-19 13:27:00 +01:00
Robbert van der Helm fa256ab9be Only log IComponent::getBusCount() on verbosity 2 2020-12-19 13:07:58 +01:00
Robbert van der Helm 38c37f2721 Don't log responses for filtered out requests 2020-12-19 13:07:58 +01:00
Robbert van der Helm 71493299ec Implement IConnectionPoint::disconnect 2020-12-19 13:07:58 +01:00
Robbert van der Helm 6734962886 Add todo about filtering response log messages 2020-12-18 23:08:18 +01:00
Robbert van der Helm 24fc584fca Hide a few more messages on verbosity level 1 2020-12-18 23:05:49 +01:00
Robbert van der Helm 151ca17ed1 Don't seek to the beginning when writing stream 2020-12-18 22:31:06 +01:00
Robbert van der Helm bbcdf9c685 Loosen assertions in VectorStream::write_back 2020-12-18 22:14:10 +01:00