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
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
71493299ec
Implement IConnectionPoint::disconnect
2020-12-19 13:07:58 +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
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
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
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
Robbert van der Helm
a953eb3bfc
Take PrimitiveWrapper values by value
...
Should not make any difference here anyway since we're dealing with
primitives.
2020-12-17 23:12:29 +01:00
Robbert van der Helm
de9250076b
Fix very important typo in IBStream reading
...
No wonder it didn't work.
2020-12-17 23:03:26 +01:00
Robbert van der Helm
585d1e736c
Implement IEditController::getParamStringByValue()
2020-12-17 22:44:13 +01:00
Robbert van der Helm
ccc5688f0c
Implement IEditController::getParameterInfo()
2020-12-17 22:16:20 +01:00
Robbert van der Helm
4cc24f74d1
Implement IEditController::getParameterCount()
2020-12-17 21:55:12 +01:00
Robbert van der Helm
7eb7e87953
Implement IEditController::setComponentState()
2020-12-17 21:50:04 +01:00
Robbert van der Helm
fe2de8de8d
Unify handling for *::{get,set}State
...
Since these functions are exactly the same, and for whatever reason they
didn't just add them to the `IPluginBase` both `IComponent` and
`IEditController`. inherit from
2020-12-17 17:52:51 +01:00
Robbert van der Helm
286023bc22
Allow creating IEditController instances
...
Now `IPluginFactory::createInstance()` can create multiple (and in our
case, all relevant) different types of objects.
2020-12-17 17:01:26 +01:00
Robbert van der Helm
2155240cca
Add stubs for IEditController{,2}
2020-12-17 16:39:50 +01:00
Robbert van der Helm
1ce12227fb
Add logging for IAudioProcessor::process()
...
This is super verbose, but I'm sure it's going to be useful at some
point.
2020-12-17 15:12:19 +01:00
Robbert van der Helm
1f5bd43fe8
Print CIDs in IPluginBase::initialize()
2020-12-17 14:28:02 +01:00
Robbert van der Helm
78f9203378
Implement a UID formatting function
2020-12-17 14:20:49 +01:00
Robbert van der Helm
d0e96da21a
Rename register_component to register_plugin_proxy
2020-12-17 13:33:34 +01:00
Robbert van der Helm
481975860c
Use the new simple supports flags for the factory
...
This is both more type safe and as it turns out much more manageable.
2020-12-17 13:20:16 +01:00