Robbert van der Helm
655195a415
Move the plugin interfaces to a subdirectory
2020-12-17 13:12:54 +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
602bbc5d35
Add TODO about replacing known_iids with flags
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
97570a47ba
Add a document with all implemented interfaces
2020-12-16 22:07:43 +01:00
Robbert van der Helm
7488d6f482
Move the VST3 design document to docs/
2020-12-16 21:54:18 +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
6d0a38f720
Null initialize the plugin factory pointer
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
7e40d70ff4
Update the TODO list in the readme
2020-12-15 20:07:03 +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
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