Tremus / CPLUG

C wrapper for VST3, AUv2, CLAP audio plugin formats
Other
98 stars 8 forks source link

CplugHostContext changes #4

Open Photosounder opened 4 months ago

Photosounder commented 4 months ago

I took the liberty of doing some of the changes we discussed. This includes using CplugHostContext everywhere instead of AUv2Plugin, CLAPPlugin and so on, removing CPLUG_NUM_PARAMS and calling cplug_getParamCount() instead, adding the host context pointer to cplug_createPlugin(). One bit of awkwardness is that I had to declare cplug_createPlugin() in cplug.h as taking a void* argument instead of CplugHostContext* due to CplugHostContext being declared later.

That takes care of the tedious part that had to be done before you can implement propertyChanged().

I also changed cplug_log(), now it's defined by a macro, the idea is that if you don't define it it defaults to a fprintf(stderr, ...), but if you do define it prior to #include <cplug.h> in your plugin then you can define it to a function in your plugin code much like the original cplug_log() function which can write to a file, for instance by doing #define cplug_log myplugin_log. Arguably it could be renamed to CPLUG_LOG() now that it's a macro, but I leave this choice up to you, I myself occasionally keep function alias macros as small caps because they call only functions.

Tremus commented 4 months ago

Good job man. I'm a bit busy to test this right now but I will get around to it and very likely merge this. Thanks for your help!