Name clash when multiple plug-ins use auwrapper

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

When I create two or more plug-ins using the auwrapper, I get warnings like this when running auval -a:

objc[47636]: Class SMTGCocoa_NSViewWrapperForAU is implemented in both /Library/Audio/Plug-Ins/Components/MyPlugin2_AU.component/Contents/MacOS/MyPlugin2_AU and /Library/Audio/Plug-Ins/Components/MyPlugin1_AU.component/Contents/MacOS/MyPlugin1_AU. One of the two will be used. Which one is undefined.
objc[47636]: Class SMTGCocoa_AUViewFactory_Version_1 is implemented in both /Library/Audio/Plug-Ins/Components/MyPlugin2_AU.component/Contents/MacOS/MyPlugin2_AU and /Library/Audio/Plug-Ins/Components/MyPlugin1_AU.component/Contents/MacOS/MyPlugin1_AU. One of the two will be used. Which one is undefined.

I'm not all that familiar with how Cocoa works in this regard, but shouldn't the plug-in project be doing something during the compile to make sure those names are unique? When used in this manner, they're part of auwrapper.a, a library that is used by multiple plug-in projects, and so the names exist in multiple plug-ins. How can I resolve this name clash?

Thanks,
Howard

Post

I found one way to resolve this... I copied the entire auwrapper project into my own project folder for each project, and made a different library for each, with different names for those two Objective-C classes. So now each of my plug-ins has distinct names.

There's most likely a better (certainly less hack-y) way to do this, but this was fast and easy and works.

Post

I'm updating a plug-in using the latest VST3 SDK and auwrapper, and am surprised that this is STILL an issue! There is (ruby) code in the library that is apparently intended to generate unique Cocoa names, but it doesn't seem to do anything for my auwrapper-based plug-ins at all. I still get those name clashes between plug-ins that are created using the auwrapper. Has anyone figured out how to get this to work, other than copying the auwrapper project itself for each project instead of using a single static library?

Post Reply

Return to “DSP and Plugin Development”