Commit Graph

1047 Commits

Author SHA1 Message Date
Robbert van der Helm e7d7317f60 Add a partial AudioBusBuffers implementation 2020-12-15 13:08:12 +01:00
Robbert van der Helm 9c97ebb262 Merge branch 'master' into feature/vst3 2020-12-14 23:21:53 +01:00
Robbert van der Helm 449b17b5e2 Get rid of explicit calling convention on main()
Fixes builds on Wine 6.0, and it's apparently also no longer needed for
Wine 5.9 and up.
2020-12-14 23:20:21 +01:00
Robbert van der Helm 62f376d952 Allow the module to be properly unloaded
Terminating the host process will cause all sockets to be closed so we
can join the threads.
2020-12-14 22:49:20 +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 2becd420b2 Take PrimitiveWrapper<T> value by rvalue 2020-12-14 18:22:12 +01:00
Robbert van der Helm bb110e8cbb Add PrimitiveWrapper<T> response logging 2020-12-14 18:08:16 +01:00
Robbert van der Helm e282f8c572 Fix IComponent::getBusCount() 2020-12-14 18:03:20 +01:00
Robbert van der Helm 0f59d6429d Implement IAudioProcessor::getLatencySamples() 2020-12-14 17:53:50 +01:00
Robbert van der Helm 6979dafa06 Add a wrapper for serializing primitives 2020-12-14 17:53:38 +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 b87c3fe790 Add a todo about non-separated controllers 2020-12-14 16:10:56 +01:00
Robbert van der Helm 49a87371bc Add todos for logging successful interface queries 2020-12-14 13:23:27 +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 e2ba9c13f1 Add IAudioProcessor instance to ComponentInstance
So we don't have to these expensive casts every time.
2020-12-14 13:18:47 +01:00
Robbert van der Helm e0dd4ab22d Add IAudioProcessor query interface to YaComponent 2020-12-14 13:17:10 +01:00
Robbert van der Helm 0668a785b0 Add stubs for implementing IAudioProcessor 2020-12-14 13:06:02 +01:00
Robbert van der Helm 096171bb96 Use the known_iids mechanism for IComponent 2020-12-14 12:48:21 +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 02e6fb1ba8 Add a way to write a VectorStream back 2020-12-14 12:24:09 +01:00
Robbert van der Helm 816d1c1501 Implement IComponent::setState() 2020-12-14 12:09:47 +01:00
Robbert van der Helm c463543ac9 Implement a serializable vector based IBStream
We can now use this for implementing reading and writing preset data.
2020-12-14 00:02:31 +01:00
Robbert van der Helm 42664be378 Use std::copy_n instead of pointer arithmetic 2020-12-13 23:19:37 +01:00
Robbert van der Helm 7341fab0ea Implement IComponent::setActive() 2020-12-13 22:17:06 +01:00
Robbert van der Helm 43296675f6 Implement IComponent::activateBus() 2020-12-13 22:07:45 +01:00
Robbert van der Helm 16b949bccf Log all function calls kwargs-style 2020-12-13 21:53:08 +01:00
Robbert van der Helm 5b6a8ebfac Implement IComponent::getRoutingInfo() 2020-12-13 21:51:56 +01:00
Robbert van der Helm 583645bb46 Add a holder for component contexts and pointers
When implementing the other component interfaces we want to be able to
store the `FUnknownPtrs`.
2020-12-13 21:31:59 +01:00
Robbert van der Helm 6adeb1987d Log function arguments kwargs-style
This would make everything a bit clearer since the SDK uses bitfields
everywhere.
2020-12-13 16:59:16 +01:00
Robbert van der Helm 9df812952e Implement IComponent::GetBusInfo() 2020-12-13 16:56:09 +01:00
Robbert van der Helm 34b2fa8905 Implement IComponent::getBusCount() 2020-12-13 16:18:13 +01:00
Robbert van der Helm 116b618ac5 Implement IComponent::setIoMode() 2020-12-13 16:12:30 +01:00
Robbert van der Helm 3f3759e5fc Log calls to unimplemented functions 2020-12-13 16:01:52 +01:00
Robbert van der Helm 32c1028736 Implement IPluginFactory3::setHostContext()
Now the plugin factories are fully implemented (at least, functionality
wise, we still can't create most kinds of objects).
2020-12-13 15:53:39 +01:00
Robbert van der Helm 7c5f7a2e0e Fully implement IPluginBase::initialize()
We can now pass host contexts around.
2020-12-13 15:16:11 +01:00
Robbert van der Helm 0c64aabeea Add a partial YaHostApplication implementation 2020-12-13 14:46:17 +01:00
Robbert van der Helm e21ee31ee8 Implement plugin side of IPluginBase::initialize() 2020-12-13 14:30:51 +01:00
Robbert van der Helm e8929e5e43 Make the UTF-16 conversion a bit safer 2020-12-13 13:53:53 +01:00
Robbert van der Helm 919987298c Add the base for YaHostApplication 2020-12-13 13:46:00 +01:00
Robbert van der Helm ca91cf041d List the progress of interface implementations 2020-12-13 12:47:18 +01:00
Robbert van der Helm d9989fe856 Update the VST3 architecture document 2020-12-13 12:32:49 +01:00
Robbert van der Helm cd92b7a976 Log failed calls to IComponent::queryInterface() 2020-12-12 22:25:25 +01:00
Robbert van der Helm 0ad56874e2 Abstract away logging unknown interfaces 2020-12-12 22:22:27 +01:00
Robbert van der Helm 39984ad442 Use the new approach for creating plugin factory
Directly serializing and deserializing into objects was and more
boilerplate heavy (since we now need two implementations even though we
only use one), and also much less flexible because we can't wrap
payloads in structs or provide optional values that way.
2020-12-12 21:53:38 +01:00
Robbert van der Helm 1b30000147 Keep track of active YaComponentPluginImpls
So we can do host callbacks later.
2020-12-12 21:24:11 +01:00