SharedResourcePointer between different plugins

Hi all,
I’m working on two separate plugins that should be able to communicate bidirectionally.
I implemented it using InterProcessConnection. I find that this approach needs a lot of code and is quite hard to maintain.

Using a SharedResourcePointer would facilitate the whole process a lot.
Is it possible to access a SharedResourcePointer from a totally different plugin?
I’m thinking about using InterProcessConnection just to send the SharedResourcesPointer’s address to the other plugin.
Or is there a better way?

Cheers
R

The address is not accessible from a different process. So either it works (in many hosts todays) without sending the address around, or it doesn’t work at all, which is when the host runs plugins in different processes. This is e.g where AUv3 is heading to. And some hosts do this in other formats already…

Well then, never change a running system i guess…

Two separate plugins would be different DLLs / Shared Libraries so I don’t think SharedResourcePointer would work at all.

You other option is to use shared memory, that might work for you if you just need to share some values between the two plugins.

Yes, if the memory is shared (i.e. same process), it works without sending the address around, like I said before.
If it’s different processes, then it doesn’t help to send addresses around, because that address is only referencing memory allocated by that process.
The same address in a different process points to something completely different.

EDIT: Oh I see my mistake, SharedResourcePointer would only work inside the same dll but different instances?
Ok, that makes sense… sorry

So it would only work, if you manage to wrap both plugins into the same dll… not sure if that is possible, maybe with tricks like WaveShells…

Wondering if he can have a DLL for sharing the static data which is loaded into the separate plug-ins…??

Plug-In A loads DataShare.dll
Plug-In B loads DataShare.dll

and DataShare.dll has the SharedResourcePointer ??

Rail

2 Likes

Is there a way to make this work using a shared DLL? Anybody done this?