Commit Graph

25 Commits

Author SHA1 Message Date
Robbert van der Helm 34f8d3b1d2 Update the copyright notices for 2021 2021-01-01 18:54:02 +01:00
Robbert van der Helm 07d57771c1 Fix IPluginFactory implementation level detection
These were not getting initialized, and could thus evaluate to true if
you're unlucky.
2020-12-27 13:03:49 +01:00
Robbert van der Helm 9288cdcb59 Remove support for null pointers in setHostContext
Like the other functions, null pointers are never valid here so we
shouldn't bother passing them as it only increases complexity.
2020-12-22 14:04:42 +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 be78ff50be Update Ya*::ConstructArgs docstrings 2020-12-19 13:27:00 +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
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 096171bb96 Use the known_iids mechanism for IComponent 2020-12-14 12:48:21 +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 919987298c Add the base for YaHostApplication 2020-12-13 13:46:00 +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 2e6184171c Use std::array for serializing UIDs
These are easily assignable and we have to convert between char
pointers, char arrays and UID objects all the time anyways.
2020-12-08 23:00:44 +01:00
Robbert van der Helm 5e85517130 Add the base for an IComponent implementation 2020-12-07 23:52:17 +01:00
Robbert van der Helm 79c6f02d91 Request and deserialize plugin factory from plugin 2020-12-07 18:28:16 +01:00
Robbert van der Helm 5f14958146 Implement IpluginFactory3::getClassInfoUnicode 2020-12-07 18:28:16 +01:00
Robbert van der Helm ef3f82e00f Implement IpluginFactory2::getClassInfo2 2020-12-07 18:28:16 +01:00
Robbert van der Helm 049eb257c5 Make YaPluginFactory abstract
And add separate implementations for the native plugin and the Wine
plugin host. This way we can easily allow the native host to do
callbacks without having to manage a load of lambdas.
2020-12-07 18:28:16 +01:00
Robbert van der Helm dd48523183 Implement IPluginFactory::getClassInfo 2020-12-07 18:28:16 +01:00
Robbert van der Helm e6da03ae84 Implement IPluginFactory::countClasses() 2020-12-07 18:28:16 +01:00
Robbert van der Helm 79df8fecc2 Serialize the factory info 2020-12-07 18:28:16 +01:00
Robbert van der Helm fa10600114 Add more thoughts on how the factory should work 2020-12-07 18:28:16 +01:00
Robbert van der Helm 82c1542b74 Add boilerplate for copying factory interfaces 2020-12-07 18:28:16 +01:00
Robbert van der Helm 8f152c7af5 Clean up the query interface serialization 2020-12-07 18:28:16 +01:00
Robbert van der Helm 42f3639e93 Add boilerplate for PluginFactory serialization 2020-12-07 18:28:16 +01:00