Commit Graph

25 Commits

Author SHA1 Message Date
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 e21ee31ee8 Implement plugin side of IPluginBase::initialize() 2020-12-13 14:30:51 +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 f637e6ad18 Rename Create/Destroy to Construct/Destruct
This is less likely to clash with names used by interfaces and it's a
bit clearer what's going on (since they are basically proxies for
constructors and destructors).
2020-12-12 16:18:47 +01:00
Robbert van der Helm 68084bc555 Implement IComponent::terminate() 2020-12-12 16:18:47 +01:00
Robbert van der Helm f5a90eb892 Fix typo in YaComponent destructor message 2020-12-12 14:59:59 +01:00
Robbert van der Helm f526ae3e39 Add a string representation for universal tresult 2020-12-11 23:57:24 +01:00
Robbert van der Helm e24cecc6d7 Use the univeral tresult in IComponent creation 2020-12-11 23:54:30 +01:00
Robbert van der Helm 699ddfd2ea Implement YaComponentPluginImpl destructor
When the object gets dropped through the reference counting system, the
object should also be dropped in the Wine plugin host.
2020-12-11 22:59:32 +01:00
Robbert van der Helm cdb9dae2df Rename YaComponent::Arguments to CreateArgs 2020-12-11 22:43:12 +01:00
Robbert van der Helm 4a056dcd31 Get rid of the VST3 logging boilerplate 2020-12-09 22:11:39 +01:00
Robbert van der Helm 5eb1fe2de2 Redesign how interface instantiation works
Transferring some argument pack is much easier than trying to
deserialize into an existing object when you also have to transfer more
information than just that object.
2020-12-08 17:33:51 +01:00
Robbert van der Helm ed743e6f22 Bundle associated messages with their interfaces
Once we start implementing all of the control messages/callbacks things
could quickly get out of hand otherwise.
2020-12-08 11:25:58 +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 d87afa99e0 Add logging for the VST3 plugin 2020-12-07 18:28:16 +01:00
Robbert van der Helm 426231a22b Avoid potential UB in loggers using composition
This cast would work fine, but any other fields added to those loggers
would be left uninitialized.
2020-12-07 18:28:16 +01:00