Commit Graph

203 Commits

Author SHA1 Message Date
Robbert van der Helm ecd9d6c2df Change YaAudioBusBuffers parameter order
So it matches the other constructor.
2020-12-30 15:55:58 +01:00
Robbert van der Helm 1ecdc5f270 Add a better list with unimplemented interfaces 2020-12-30 14:43:29 +01:00
Robbert van der Helm 651ebd4db3 Update the ViewRect in checkSizeConstraint() 2020-12-30 14:35:18 +01:00
Robbert van der Helm 8458ea041f Add a TODO for a missing return value 2020-12-30 14:18:42 +01:00
Robbert van der Helm 3553b080fe Implement IUnitData
With this all VST 3.0.0 interfaces are finally supported.
2020-12-29 22:00:22 +01:00
Robbert van der Helm f85912fd25 Add logging for IUnitData structs 2020-12-29 21:51:53 +01:00
Robbert van der Helm 53c5e46b4c Add the request and response structs for IUnitData 2020-12-29 21:48:38 +01:00
Robbert van der Helm 104cdef919 Add a proxy class for IUnitData 2020-12-29 21:48:29 +01:00
Robbert van der Helm 1c7a5e08a0 Check for null pointers in input parameter changes
This is not allowed to be a null pointer, but the SDK's plugin validator
will pass a null pointer anyways.
2020-12-29 17:32:33 +01:00
Robbert van der Helm ccba1ce36c Add IProgramListData request and response objects 2020-12-29 16:11:25 +01:00
Robbert van der Helm 22269570d0 Add stubs for IProgramListData 2020-12-29 15:53:01 +01:00
Robbert van der Helm c2f1722f14 Add a proxy class for IProgramListData 2020-12-29 15:47:25 +01:00
Robbert van der Helm c1118af21c Update the readmes for merging into master 2020-12-29 15:39:41 +01:00
Robbert van der Helm 4226ab6e43 Pass pointers to IMessage objects around
Instead of serializing the actual `YaMessage`, for the reasons mentioned
in the comments. This was needed to stop iZotope VocalSynth 2 in Ardour
from segfaulting when editing parameters, because that plugin is
apparently being very naughty.
2020-12-29 00:22:42 +01:00
Robbert van der Helm 1229518fb5 Add request and response structs for IUnitInfo 2020-12-27 17:20:53 +01:00
Robbert van der Helm 70c5792593 Implement IUnitInfo::getSelectedUnit 2020-12-27 16:48:47 +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 095716d248 Fix retrieving old-style class infos
Most plugins implement IPluginFactory3 so this slipped through. Melodyne
5 apparently does not.
2020-12-27 13:00:20 +01:00
Robbert van der Helm d34b399ba0 Implement IUnitInfo::getProgramPitchName 2020-12-26 23:20:13 +01:00
Robbert van der Helm e414c58a7a Implement IUnitInfo::hasProgramPitchNames 2020-12-26 23:04:02 +01:00
Robbert van der Helm f96e6b5a1e Implement IUnitInfo::getProgramInfo 2020-12-26 23:00:15 +01:00
Robbert van der Helm 204765ec0c Implement IUnitInfo::getProgramName 2020-12-26 22:38:15 +01:00
Robbert van der Helm 60f6b30b84 Implement IUnitInfo::getProgramListInfo 2020-12-26 22:17:21 +01:00
Robbert van der Helm 92a7cb755a Implement IUnitInfo::getProgramListCount 2020-12-26 22:10:46 +01:00
Robbert van der Helm 999cf45d6a Fix the return type for IUnitInfo::getUnitCount 2020-12-26 22:07:12 +01:00
Robbert van der Helm 5e832a2689 Implement IUnitInfo::getUnitInfo 2020-12-26 22:03:26 +01:00
Robbert van der Helm f3e706a39a Implement IUnitInfo::getUnitCount 2020-12-26 21:33:19 +01:00
Robbert van der Helm aed369c4be Add stubs for IUnitInfo
This is a big boy.
2020-12-26 21:18:11 +01:00
Robbert van der Helm f940d3371b Allow casting YaComponentInfo to IUnitHandler
Quite an important detail.
2020-12-26 21:13:23 +01:00
Robbert van der Helm 47177ed889 Implement IUnitHandler::notifyProgramListChange
With this IUnitHandler has been fully implemented.
2020-12-26 14:30:28 +01:00
Robbert van der Helm bf40e10780 Implement IUnitHandler::notifyUnitSelection 2020-12-26 14:26:29 +01:00
Robbert van der Helm 934aea3860 Add IUnitHandler stubs to component handler proxy 2020-12-26 14:17:10 +01:00
Robbert van der Helm 5e26d30752 Add a wrapper for IUnitHandler 2020-12-26 14:12:40 +01:00
Robbert van der Helm 86aaf2fa3a Implement IEditController2::openAboutBox
With this IEditController2 has been fully implemented.
2020-12-26 00:10:39 +01:00
Robbert van der Helm 3c5700163e Implement IEditController2::openHelp 2020-12-26 00:06:32 +01:00
Robbert van der Helm 91a96249fc Implement IEditController2::setKnobMode 2020-12-26 00:03:29 +01:00
Robbert van der Helm 70cb6dad89 Allow indirect IConnectionPoint connections
This is needed to support Ardour. These extra hops and serialization
steps will probably hurt performance, but outside of some huge hacks (to
connect the components directly anyways) there's not much else we can
do.
2020-12-25 14:21:18 +01:00
Robbert van der Helm 0fce9c9eed Add an IConnectionPoint proxy proxy
This is a bit dumb, but this way we can support indirectly connected
objects.
2020-12-25 13:28:03 +01:00
Robbert van der Helm 65694d261c Implement IConnectionPoint::notify 2020-12-25 13:13:56 +01:00
Robbert van der Helm 3566aa86a2 Fix IAttributeList serialization 2020-12-25 12:58:52 +01:00
Robbert van der Helm 84b859c499 Implement IMessage 2020-12-25 01:01:13 +01:00
Robbert van der Helm b6304c83b5 Implement IAttributeList 2020-12-25 00:54:08 +01:00
Robbert van der Helm b0fc8f2c5f Remove are_objects_directly_connected check
It's not necessary, since all of these objects are simple data objects
that will be passed as arguments to other functions. When we have to
pass through one of those functions we can just serialize the objects at
that point.
2020-12-24 14:45:58 +01:00
Robbert van der Helm 1186e7d775 Store whether two objects are connected directly
In the host context. So when the plugin wants to create an `IMessage`
object to send a message to the other object, we don't have to go
through the host.
2020-12-24 13:22:54 +01:00
Robbert van der Helm 9bb90388c1 Implement IPlugView::checkSizeConstraint()
With this the whole of `IPlugView` and thus also `IEditController` is
implemented.
2020-12-22 15:42:41 +01:00
Robbert van der Helm 5ef7e73725 Implement IPlugView::canResize() 2020-12-22 15:37:06 +01:00
Robbert van der Helm 656f6d3f6c Implement IPlugFrame::resizeView()
The base IPlugFrame only contains this single function.
2020-12-22 15:09:33 +01:00
Robbert van der Helm da6ddccf07 Implement IPlugView::setFrame() 2020-12-22 14:16:00 +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 3b96ffa349 Remove null pointer supported in initialize() 2020-12-22 13:59:47 +01:00