Status Updates
When any Control is changed on Ultimatte by any client, Ultimatte replies with the applicable
status block, containing only the items that have changed. For example, if Matte Density has
been changed, the following block will be sent:
CONTROL:
↵
Matte Density: 0
↵
↵
If multiple items are changed, multiple items may be present in the update:
CONTROL:
↵
Matte Density: 0
↵
Red Density: 0
↵
↵
Requesting Changes
To update a Control the client should send a block of the same form Ultimatte sends when its
status changes. For example, to change Matte Density to 100, the client should send the
following block:
CONTROL:
↵
Matte Density: 100
↵
↵
The block must be terminated by a blank line. On receipt of a blank line, Ultimatte will either
acknowledge the request by responding:
ACK
↵
↵
or indicate that the request was not understood by responding:
NAK
↵
↵
After a positive response, the client should expect to see a status update from Ultimatte
showing the status change. This is likely to be the same as the command that was sent, but if
the request could not be performed, or other changes were made simultaneously by other
clients, there may be more updates in the block, or more blocks. Simultaneous updates could
cancel each other out, leading to a response that is different to that expected.
In the absence of simultaneous updates, the dialog expected for a simple control change is
as follows:
CONTROL:
↵
Matte Density: 0
↵
↵
ACK
↵
↵
CONTROL:
↵
Matte Density: 0
↵
↵
The asynchronous nature of the responses means that a client should never rely on the desired
update actually occurring and must simply watch for status updates from Ultimatte and use only
these to update its local representation of Ultimatte’s state.
5555Developer Information