On Wed, 21 Feb 2024 02:51:45 +0100 ichthyo <[email protected]> wrote:
>On 07.02.24 01:07, ichthyo wrote: >> To make the current state clear: >> * implemented: have MirrorData blocks in the UI connected properly >> * unimplemented: trigger push update + use the data from the MirrorData >> block > > >Hi Will, > >today I was able to pick up work on this topic, now focussing on the >aspect of state updates. While I'm still somewhat struggling to understand >how things work together (especially since those effect arrays are more >or less global data and accessed from a huge load of different contexts), >it seems now that we might be able to reduce and subsume this topic under >two generic situations: > >- User switches the number of the effect exposed in the UI >- specific parameter changes concerning the presentation, eg. EQ-graphs > >Mostly I arrived by that conclusion by analysing/tracing out the >EffUI::refresh() function; while this function has a huge load of >different call paths, all seem to be rooted either at one or the >other of these two conditions. > EffUI is a particularly interesting (and complex) case, as is the underlying code. There is a lot of pointer manipulation going on under the hood and the paths are difficult to follow. Over the years I've made a number of attempts to simplify and clean this up, and mostly it seems to be 'two steps forward-one step back'. The latest was making the GUI initialisation use the (now complete) refresh function, then also taking out the duplicated calls in the individual objects. I discovered that quite a few of the refresh functions were incomplete when doing the work on presets. I think they are all correct now. -- Will J Godfrey _______________________________________________ Yoshimi-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/yoshimi-devel
