Commit Graph

1153 Commits

Author SHA1 Message Date
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
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 01d84b0029 Mention the exact function name in todo message 2020-12-19 17:49:00 +01:00
Robbert van der Helm cb815ebb56 Work around null pointers in Ardour 2020-12-19 17:40:55 +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 c94089b832 Fix creating component handler proxy 2020-12-19 17:00:57 +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 eacd5f27f5 Allow class IDs shorter than 16 bytes 2020-12-19 15:22:26 +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 95b30b069e Include libyabridge-vst3.so in the build artifacts 2020-12-19 13:23:53 +01:00
Robbert van der Helm a197ad897c Clean up IPluginFactory::createInstance()
We'll just do all the checks up front, that's much cleaner and also
safer.
2020-12-19 13:07:58 +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 8251249959 Remove fixme about out of order messages
This appears to 100% be a bug in ValhallaSuperMassive.
2020-12-18 23:10:07 +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 70e01e17c1 Add note wrong parameter value strings in Bitwig 2020-12-18 23:02: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
Robbert van der Helm 43f5e65b45 Implement IEditController::setParamNormalized() 2020-12-18 21:53:13 +01:00
Robbert van der Helm bc0c13778f Implement IEditController::getParamNormalized() 2020-12-18 21:53:04 +01:00
Robbert van der Helm fcbf198fee Implement IEditController::plainParamToNormalized 2020-12-18 21:36:39 +01:00
Robbert van der Helm 78d5e3bbfb Implement IEditController::normalizedValueToPlain 2020-12-18 21:36:39 +01:00
Robbert van der Helm a4e2a18480 Implement IEditController::getParamValueByString() 2020-12-18 21:36:39 +01:00
Robbert van der Helm d99f880277 Rename YaHostApplication implementation
The context should make it obvious where it's implemented, and with the
current design we only an implementation on one of the two sides.
2020-12-18 21:36:39 +01:00
Robbert van der Helm d2585a3550 Add a todo about reusing YaProcessData objects 2020-12-18 20:22:34 +01:00
Robbert van der Helm af1d573712 Add IConnectionPoint to the implemented interfaces 2020-12-18 14:31:26 +01:00
Robbert van der Helm 74f21f12a5 Use a getter for a proxy object's instance ID
We also need this to get some random other object's instance ID, so
might as well use it everywhere.
2020-12-18 14:22:57 +01:00
Robbert van der Helm cfa4849467 Partially implement IConnectionPoint::connect()
This now works for direct connections, which is probably how most hosts
will use this.
2020-12-18 14:09:20 +01:00
Robbert van der Helm 41a9ca5a36 Add boilerplate for connecting Vst3PluginProxies
This way we can identify the actual objects and directly connect them on
the Wine side.
2020-12-18 13:45:13 +01:00
Robbert van der Helm f83e526fc6 Add stubs for IConnectionPoint 2020-12-18 13:36:48 +01:00
Robbert van der Helm e36f53b103 Change VST3 log format to be more readable 2020-12-18 13:14:50 +01:00
Robbert van der Helm 381ca253c1 Fix uninitialized seek position in VectorStream 2020-12-18 12:53:51 +01:00
Robbert van der Helm 8066e1d2ee Fix writing back vector streams 2020-12-17 23:43:52 +01:00