I’m trying to figure out making a delay patch in cpp, so I copied SimpleDelayPatch.hpp and uploaded it, along with it’s dependency CircularBuffer.hpp. After changing Stompbox.h to Patch.h I get:
PHP Notice: Use of undefined constant ENVIRONMENT_PRODUCTION – assumed ‘ENVIRONMENT_PRODUCTION’ in /var/www/hoxtonowl.com/subdomains/www/patch-builder/settings.php on line 3 PHP Notice: Constant HEAVY_TOKEN already defined in /var/www/hoxtonowl.com/subdomains/www/patch-builder/patch-builder.php on line 20 /tmp/owl-build-l5a7mJ/registerpatch.cpp: In function ‘void setup(ProgramVector*)’: ./Source/PatchProgram.cpp:43:74: error: cannot convert ‘CircularBuffer*’ to ‘Patch*’ for argument ‘4’ to ‘void registerPatch(const char*, uint8_t, uint8_t, Patch*)’ #define REGISTER_PATCH(T, STR, IN, OUT) registerPatch(STR, IN, OUT, new T) ^ /tmp/owl-build-l5a7mJ/registerpatch.cpp:1:1: note: in expansion of macro ‘REGISTER_PATCH’ REGISTER_PATCH(CircularBuffer, “SimpleDelayPatch”, 2, 2); ^ make: *** [/tmp/owl-build-l5a7mJ/PatchProgram.o] Error 1 make: *** [patch] Error 2 ERROR: Patch build failed.
I’m guessing the PHP notices are non-fatal. It seems to be trying to make a patch out of CircularBuffer.hpp so maybe I’m doing something wrong there. But I’m not sure why it doesn’t want to register SimpleDelayPatch. Sorry for the newbie level question.
Yes you are right: the compiler is assuming that the first file is the main patch file, and uses the filename to deduce the patch class name.
If you go to Edit patch, and swap the order of the two files around, then it should work.
We’re working on improving this and other parts of the edit + compile system. I the meantime I can only apologise for the lack of documentation.