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
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
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
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
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
24fc584fca
Hide a few more messages on verbosity level 1
2020-12-18 23:05:49 +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
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
e36f53b103
Change VST3 log format to be more readable
2020-12-18 13:14:50 +01:00
Robbert van der Helm
2c01bd8bf1
Fix typo in IEditController::setComponentState log
2020-12-17 23:12:01 +01:00
Robbert van der Helm
7fd488beef
Fix plugin proxy cosntruction response log message
2020-12-17 22:55:02 +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
96c630e608
Fix typo in log message
2020-12-17 18:51:32 +01:00
Robbert van der Helm
b3e39daed0
Fix typo in log message
2020-12-17 17:58:32 +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
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
11bf7532fa
Rename the monolitic class to Vst3PluginProxy
...
Now it's starting to look promising.
2020-12-17 13:07:42 +01:00
Robbert van der Helm
d8b2646563
Split off IComponent and create a monolithic class
...
We can now use implement all VST3 plugin interfaces through this class,
check whether the object from the plugin also supports these classes,
and then conditionally allow casting to the supported classes. This
should give us a one-to-one proxy of the original object.
2020-12-17 12:49:33 +01:00
Robbert van der Helm
d6c28f48d9
Split YaAudioProcessor from YaComponent
...
Now all that's left is splitting YaComponent into the IComponent bits
and separate YaPluginMonlith that implements everything.
2020-12-17 00:31:32 +01:00
Robbert van der Helm
6809e73d6b
Split IPluginBase from IComponent
...
We're also going to need this for `IEditController`. Separating all of
these classes will also keep everything much more maintainable with all
of these associated structs.
2020-12-16 23:46:47 +01:00
Robbert van der Helm
1dd575e4a7
Implement IAudioProcessor::process()
...
With this the entire `IAudioProcessor` interface has been implemented
and in theory it should now be possible to process audio and events.
Logging for these requests still has to be implemented separately.
2020-12-16 18:55:34 +01:00
Robbert van der Helm
c815b3903b
Implement IAudioProcessor::getTailSamples()
2020-12-14 21:43:38 +01:00
Robbert van der Helm
007aa1e707
Implement IAudioProcessor::setProcessing()
2020-12-14 21:31:50 +01:00
Robbert van der Helm
b1bcfd3873
Implement IAudioProcessor::setupProcessing()
2020-12-14 21:25:05 +01:00
Robbert van der Helm
cb7413c521
Add implicit conversion for UniversalTResult
2020-12-14 18:32:18 +01:00
Robbert van der Helm
bb110e8cbb
Add PrimitiveWrapper<T> response logging
2020-12-14 18:08:16 +01:00
Robbert van der Helm
0f59d6429d
Implement IAudioProcessor::getLatencySamples()
2020-12-14 17:53:50 +01:00
Robbert van der Helm
d9585fac78
Implement IAudioProcessor::canProcessSampleSize()
2020-12-14 17:12:49 +01:00
Robbert van der Helm
b26c2e08a7
Implement IAudioProcessor::getBusArrangement()
2020-12-14 16:55:21 +01:00
Robbert van der Helm
e3b442de57
Implement IAudioProcessor::setBusArrangements()
2020-12-14 16:40:40 +01:00
Robbert van der Helm
143d795c0b
Unify log message format for initialize()
2020-12-14 13:21:28 +01:00
Robbert van der Helm
e653142e45
Implement IComponent::getState()
...
With this the basic IComponent interface is fully implemented. Next will
be `IAudioProcessor` and `IConnectionPoint` as additions to IComponent.
We'll use the same `known_iids` mechanism as used in the plugin factory.
2020-12-14 12:38:35 +01:00
Robbert van der Helm
816d1c1501
Implement IComponent::setState()
2020-12-14 12:09:47 +01:00