Commit Graph

336 Commits

Author SHA1 Message Date
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 2bf98d0a97 Implement writing back YaProcessDataResponse
Everything around `ProcessData` is now fully implemented and should in
theory work.
2020-12-16 18:14:28 +01:00
Robbert van der Helm 6f38f8400c Implement process call creation 2020-12-16 17:42:12 +01:00
Robbert van der Helm 95a4ef8eed Implement reconstructing ProcessData 2020-12-16 17:36:49 +01:00
Robbert van der Helm 3771ed6870 Add more YaProcessData boilerplate 2020-12-16 17:14:42 +01:00
Robbert van der Helm d1c5d4c4ac Implement YaProcessData reading 2020-12-15 23:11:59 +01:00
Robbert van der Helm d6b7ef38e2 Add missing fields in events
Thanks GCC.
2020-12-15 22:39:54 +01:00
Robbert van der Helm f1aefc0a9d Finish implementing YaAudioBusBuffers 2020-12-15 22:32:42 +01:00
Robbert van der Helm 487e6eac98 Add the process context to YaProcessData 2020-12-15 21:49:30 +01:00
Robbert van der Helm e4b97d90c9 Add the events to YaProcessData 2020-12-15 21:32:50 +01:00
Robbert van der Helm a516309d17 Implement IEventList 2020-12-15 18:32:43 +01:00
Robbert van der Helm 0137bb3499 Fully implement YaEvent 2020-12-15 18:02:26 +01:00
Robbert van der Helm f33b749172 Implement all event types 2020-12-15 17:44:26 +01:00
Robbert van der Helm d8c51d885b Partially implement IEventList and all event types 2020-12-15 17:10:54 +01:00
Robbert van der Helm 6fc54d80fb Move TChar* -> std::u16string conversion to base.h
We're going to need it for VST3 events.
2020-12-15 17:01:57 +01:00
Robbert van der Helm ce09d60447 Add parameter changes to YaProcessData 2020-12-15 14:30:41 +01:00
Robbert van der Helm 92c37f71db Implement IParameterChanges 2020-12-15 14:24:55 +01:00
Robbert van der Helm 026595d99f Implement IParamValueQueue 2020-12-15 14:23:55 +01:00
Robbert van der Helm e7d7317f60 Add a partial AudioBusBuffers implementation 2020-12-15 13:08:12 +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 143d795c0b Unify log message format for initialize() 2020-12-14 13:21:28 +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 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 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 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