Specifically for Table DATs, for an easier implementation of a Main and Backup system in regard to UI Bindings.
It could be called a Touch DAT.
It works exactly like a Table DAT on both ends (for the purpose of editing/binding/scripting etc)
It can be configured as a Server or a Client. Clients connect to the Server.
It can be configured as a Master or a Receiver.
A Master can be bound/scripted etc. and will work exactly like a Table DAT. It will then send this to the Receiver
A Receiver can be bound/scripted etc, but wont actually update anything (The TCP connection to the Master is the only thing that can change the data). Any bound value changes are changed back (ie, it wont break binding, but clicking a bound button wont be clicked. or its clicked, but the table isnt updated for any other bindings)
If a Client looses connection to a Server, it reconfigures to a Master (this could be done through callbacks) so that local bindings “work” again.
When a Client connects to a Server, it reconfigures to a Receiver (this could be done through callbacks, so that it can be kept as a master if desired)
If a Master and a Receiver are connected to each other, and a Receiver is manually configured to be a Master (ie, a ‘Take Over Control’ type scenario, or through a script) then the current Master is reconfigured to be a Receiver (again, this can be done through callbacks).
If a Master and a Receiver are connected to each other, and a Master is manually configured to be a Receiver (ie a ‘Give Up Control’ type scenario, or through a script), then the current Receiver is reconfigured to be a Master (again, this can be done through callbacks)
I feel like this could go hand-in-hand with the new Widget UI system, and the emphasis on bindings.
The core video part of a project can be deterministic from its inputs and UI.
This new DAT op would allow for easier synchronisation of UIs for when you need a Main and a Backup system.
I currently accomplish this with a Touch In and a Touch Out DATs, a Table DAT, and DAT Execute DATs to send local updates out the Touch Out DAT, and update the Table DAT for any changes from the Touch In DAT.
Its a bit clunky, and is not reliable for both UIs being used at the same time (which the new OP wouldn’t solve, but it would prevent)