Commit Graph

29 Commits

Author SHA1 Message Date
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 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 816d1c1501 Implement IComponent::setState() 2020-12-14 12:09:47 +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 5b6a8ebfac Implement IComponent::getRoutingInfo() 2020-12-13 21:51:56 +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 efc840a51a Log unknown interfaces in IComponent::initialize() 2020-12-12 16:53:44 +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 d80ba10f06 Interleave structs with their related functions
Might make it a bit more organized when this is fully implemented.
2020-12-12 16:04:35 +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 225056bcff Allow instantiating IComponents 2020-12-08 23:08:07 +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 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 f4a5aa91fb Document the plugin factory approach 2020-12-08 14:21:54 +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