View Single Post
Old 07-19-2019, 12:57 PM   #3394
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,256
Default

Hmmm...

Just had a thought, could maybe work...

Here's the geeky details...

There seems to be no easy way around it, we need something like a Zone stack, but as everyone knows building one that works ain't so easy

We still have an Active Zones List.

Each Widget will also have its own activation stack -- an item consisting of the Action and the Zone that activated it.

Let's use a C4 example:

So first A1-D8 are blank -- probably a good idea to set up a Home Zone for the C4 to do this using NoAction.

So let's get into the internals and look at an individual widget activation stack after initialization:
Code:
NoAction Home
Map an FX and it becomes:

Code:
NoAction Home
anFXParam FXZoneName
Now map Sends:

Code:
NoAction Home
anFXParam FXZoneName
aSendParam SendZoneName
When we say Deactivate SendZoneName -- we remove SendZoneName from the Active Zones List.

As part of Deactivate Zone internals, we also say to each individual Widget GoPrevious.

This simply backs up the list a la:

Code:
NoAction Home
anFXParam FXZoneName
Now here is the key difference.

Instead of blindly going back to anFXParam, we check to to if FXZoneName is still Active, and if not, we back up again, and also remove the dead FXZoneName entry.

However if we Deactivated FXZoneName from this:

Code:
NoAction Home
anFXParam FXZoneName
aSendParam SendZoneName
We would do nothing to the Widget -- it is at this moment mapped to aSendParam SendZoneName.

If we then Deactivate SendZoneName, we will go back, find FXZoneName has disappeared, and back upon one more to Home.

Just thinking out loud...
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is online now   Reply With Quote