Would it be possible to make the stuff that you define in the Introjucer and later gets #define to some nice constants and is used in the wrapper, there is no way of intercepting that without re-compiling the plugin. My plugin is a bit more dynamic and as i wrote in some previous posts it will morph into other plugins based on external data (resources) thus i’d need it to be viewed differently by the host in every copy if itself (yes there will be copies). Would it be possible to somehow intercept them maybe by some get/set methods in the AudioProcessor. I mean this part, to be a bit more dynamic and in AU too don’t know about RTAS.
I don’t really understand what you mean…? The reason that a lot of those things are done with macros rather than c++ constants is because they also get included in things like the win32 resource compiler, and can’t be changed dynamically.
The idea is to change the name, of the plugin based on resources in the binary.
I export a copy of my plugin with a resource that changes what hardware the plugin controls, so you can have multiple copies of my plugin each with a different filename and resource inside it, the host sees those files as different plugins.
SynthEdit does the same thing, you create a plugin in a WYSIWYG editor and export it as a DLL, it’s the same codebase but a different document ebedded in the DLL.
I managed to get this working in VST, since the VST wrapper holds a pointer to the AudioProcessor i was able to get the name reported by that object
bool getEffectName (char* name)
{
/** ATOM START **/
/** REMOVED: ; **/
filter->getName().isEmpty() ? String (JucePlugin_Name).copyToUTF8 (name, 64) : filter->getName().copyToUTF8 (name, 64);
/** ATOM END **/
return true;
}
I was looking through the AU code but i couldn’t make out where is a relevant section and how to access my objects in obj-c could someone hint the relevant parts to look at to achieve a similar result ?