CplugHostContext changes
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.
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!
Sorry I have to close this without merging it. It currently conflicts with merged plugin builds discussed here https://github.com/Tremus/CPLUG/pull/9
I've started implementing some of the ideas we discussed in another branch below, as well as adding some changes from the commits from your PR 56d9bf6442c28625f7e8c7c431d095f65d876db5