The MagicState serves as multi connector from the GUI to the processor. You can expose all kind of things, the AudioProcessorParameters are only one thing.
Additionally you can add objects. Only restriction is, that it is owned by the magicState:
Took me a while to get back to you on this topic and figure out what to do next. I’ve tried to follow your example, however I don’t see in the ExtendingExample how your Lissajour is used, as it is not instantiated, it doen’t seem to be used anywhere ? BTW I have missing symbols when trying to build that project on XCode…
Do you happen to have a clue ? Or maybe another example app that I could check against ?
The class is not used in the code, that is right. Because the PGM module doen’t know your class (and the Lissajour class is an example of such an unknown class).
But when you added the class to the builder in the YourAudioProcessor::initialiseBuilder() callback, you registered a factory.
When a node called Lissajour shows up in the magic.xml, then the factory is called and a LissajourItem is constructed, which contains your Lissajour object.
For the missing symbols it would help to know, which ones. Chances are, you activated FOLEYS_ENABLE_BINARY_DATA but did not add binary data to your project, in which case the BinaryData callbacks are not implemented byt the juce setup.
But that is a wild guess, could be anything. I can only tell when I know which symbols.
Actually you’re right, I had elements used in my Look And Feel that I included in your example, which were inside another binarydata, sorted that out now I think.
Now I have a compilation error when adding my guielement on the constructor, I don’t know what it’s expecting:
There seems to be an atomic locking somewhere, heaviest track is
Maybe I’m using std::atomic wrongly to handle my parameters ?
Most likely some atomics I was using direclty without passing through their load() method… Will report back if there’s a change (some questions probably meant for the JUCE channel in the audioprogrammer discord^^)