On Fri, Jul 16, 2004 at 12:52:28PM +0100, Chris Cannam wrote:
I'd like to announce a new version (numbered 0.4)
of the DSSI synth
plugin API proposal.
From the RFC:
The host does not send updates to the UI for port
changes that the
UI itself initiated; likewise the UI must not send port changes back
to the host that the host itself initiated.
While the second part of this surely makes sense, I'm not so sure
about the first. In MCV terms, the UI is both a C and a V. With the
definition above, the host assumes that both parts 'know each other'.
This may be the case for a UI, but in general this will not always
be true. Even in the case where it is, the following should be
considered:
- The design of the UI is probably simplified by separating the C and V
functions.
- In some cases, the host may refuse to do what the UI asks for, so the
UI should not simply assume that it knows the new state after a command.
- If the UI has its own internal path to update V from the actions taken
by C, events may arrive at V out of order, for example:
1. the host sets parameter P to value X, and sends a message that
it has done so.
2. the UI sets P to Y, and displays Y.
3. the message from 1. arrives, the UI now displays X while the
actual value is Y.
More generally, not reporting the results of external commands makes
any extension to multiple C or V impossible.
--
Fons