Commit Graph

1002 Commits

Author SHA1 Message Date
Robbert van der Helm d9989fe856 Update the VST3 architecture document 2020-12-13 12:32:49 +01:00
Robbert van der Helm cd92b7a976 Log failed calls to IComponent::queryInterface() 2020-12-12 22:25:25 +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 1b30000147 Keep track of active YaComponentPluginImpls
So we can do host callbacks later.
2020-12-12 21:24:11 +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 1088483f15 Mention destructors in VST3 implementation docs 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 f5a90eb892 Fix typo in YaComponent destructor message 2020-12-12 14:59:59 +01:00
Robbert van der Helm 0214221c3a Rename handle_plugin_dispatch to *_run
Since run() is now the general `HostBridge()` function to listen for
incoming events.
2020-12-12 13:34:30 +01:00
Robbert van der Helm 4f8fe21fa9 Merge branch 'master' into feature/vst3 2020-12-12 13:33:36 +01:00
Robbert van der Helm 42c484bfc0 Bump to version 2.2.1 2.2.1 2020-12-12 12:48:09 +01:00
Robbert van der Helm 712736e74a Prevent a deadlock in plugin group handling
This was a nasty race condition that only seemed to pop up with Spitfire
plugins in REAPER, but it could also happen elsewhere. The
`active_plugins_mutex` was getting locked from the message loop, but the
plugin would block until `effOpen()` had been called. But because the
mutex was locked by the message loop we would never get to handling
`effOpen()`. Passing the pointer directly both removes this unnecessary
locking and fixes the issue.
2020-12-12 12:44:01 +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 91a47a466c Create a universal wrapper around tvalue 2020-12-11 23:34:23 +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 d1d85711f0 Split up the VST3 class implementations 2020-12-11 22:37:20 +01:00
Robbert van der Helm 33cb5f1efe Change wording of Discord link in issue tracker 2020-12-11 22:03:53 +01:00
Robbert van der Helm 001af8c6b4 Add a link to the Discord on the issues page 2020-12-11 21:57:07 +01:00
Robbert van der Helm afd777b583 Mention the Discord in the common issues section 2020-12-11 18:16:17 +01:00
Robbert van der Helm b815fb0c34 Add a Discord badge to the readme 2020-12-11 18:14:37 +01:00
Robbert van der Helm 5b2d76e33d Mention the Discord in the issue templates 2020-12-11 18:02:14 +01:00
Robbert van der Helm 9439a62d94 Fix formatting 2020-12-11 16:56:46 +01:00
Robbert van der Helm 9554bbc12d Merge branch 'master' into feature/vst3 2020-12-11 16:25:53 +01:00
Robbert van der Helm d0b9f1a602 Bump to version 2.2.0 2.2.0 2020-12-11 14:00:16 +01:00
Robbert van der Helm c4f178aa13 Reword changelog 2020-12-11 13:59:27 +01:00
Robbert van der Helm ced3608e91 Update the tested REAPER version 2020-12-11 13:21:29 +01:00
Robbert van der Helm 3e13eb9e46 Merge branch 'master' into feature/vst3 2020-12-11 13:02:49 +01:00
Robbert van der Helm 29f1754527 Link to the issue instead of listing issue number 2020-12-11 13:01:45 +01:00
Robbert van der Helm c306048988 Fix hanging processes for good #69 2020-12-11 12:40:50 +01:00
Robbert van der Helm 41b79720ca Merge branch 'master' into feature/vst3 2020-12-11 00:50:43 +01:00
Robbert van der Helm aae98d518c Fix the with-winedbg option 2020-12-11 00:35:29 +01:00
Robbert van der Helm 2615da51da Fix the socket waiting fix #69
e07467697a changed the waiting behaviour,
but this meant that there was a very slight window where all secondary
requests would fail when both sides have called connect(), but the other
side has not already called `receive_{events,multi,messages}` to start
listening on the socket.
2020-12-11 00:33:28 +01:00
Robbert van der Helm ac0d83e555 Fix concurrency issue in plugin group shutdown 2020-12-10 21:41:04 +01:00
Robbert van der Helm c05040d98b Link with -mconsole instead of -mwindows
Not sure why it even worked with -mwindows, but this is the correct
linking option for the `main()` entry point.
2020-12-10 18:01:11 +01:00
Robbert van der Helm e3a52bca14 Revert "Get rid of all traces of pthreads in Wine"
This reverts commit e9af76d21e.

Without this the event loop will just not run, not sure why. This needs
some more investigation.
2020-12-10 17:38:09 +01:00
Robbert van der Helm e9af76d21e Get rid of all traces of pthreads in Wine
Since this can only cause issues.
2020-12-10 15:44:37 +01:00
Robbert van der Helm 5c98b74bc2 Remove now unused variable 2020-12-10 15:07:16 +01:00
Robbert van der Helm 5f7c105b6d Use boost::asio::transfer_exactly
Instead of doing assertions.
2020-12-10 15:03:26 +01:00
Robbert van der Helm e07467697a Only wait for sockets during initialization #69 2020-12-10 12:03:51 +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 225056bcff Allow instantiating IComponents 2020-12-08 23:08:07 +01:00
Robbert van der Helm 75ed978a1b Fix pointer dereference after move 2020-12-08 23:08:07 +01:00
Robbert van der Helm 9b025052d2 Add stubs for an IComponent implementation 2020-12-08 23:02:26 +01:00
Robbert van der Helm 92ea15bcb4 Allow interface implementations to send messages 2020-12-08 23:01:50 +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