After a couple of weeks of pulling out what little hair I have left, the thing that I’m most struggling with is tying what I know about the pixelpipe/modules as a user to how that information is represented in the many data structures that abound within the darktable code.
As an example, how would I find a representation of all modules (whether active or not, and including duplicates) and their associated widgets for the image I’m currently editing - what data structure(s) are those stored in and how do I determine what order they will be applied during processing? If I move a module up or down in the pipeline (/duplicate/delete a module), or change the parameters of a module, what data is changed? I feel like if I only had a handle on a few of the key data structures, my understanding of the rest of the code might fall into place.
Unfortunately, while some of these structures have comments against their member variables, none of them seem to have an overall description of what that structure represents, and I’m left trying to infer that information by looking at the operations performed on them.
Can anyone give me a quick summary of the key data structures I need to understand and how they relate to each other?