ok, the key to the problem seems to be this module creates new light widgets.
in particular they derive from rack::app::ModuleLightWidget (which comes from LightWidget)
they then override
void drawLight(const DrawArgs &args) override
void drawBackground(const DrawArgs& args) override
however, these methods never get called.
in fact I can also override draw(const DrawArgs &args) and that never gets called either.
these are correctly added via addChild(), and are kind of present, as I can change the colour, as I can see that circle to change colour.
my guess?
something is losing the type of these objects, and is treating them as basic LightWidget, which is what the circle is likely to be, and hence why if I setColour() on it, it will change.
but no other overridden drawing is being done, due to lost type.
note: since they use the override
in declaration, the compiler is happy with the inheritance hierarchy.
this overriding of ModuleLightWidget is being done for a number of its custom widgets, hence why we see these ‘circles’ instead of intended graphics.
Id guess, if the overridden methods start to get called, most of the issues will be fixed.
to double check, Id need to create a new test plugin to ensure there is not something else odd going on within the plugin.
however, given this plugin does work on the desktop with this code, it looks like its likely something in the firmware
thoughts @danngreen ?
what has made this pretty tricky to track down, and created a few false ‘leads’ is there is so much redundant code within the module, stuff thats not being used, but looks like it might