Re: [linux-audio-dev] MVC - multiple CV

From: Alfons Adriaensen <fons.adriaensen@email-addr-hidden>
Date: Tue Oct 04 2005 - 12:31:02 EEST

On Mon, Oct 03, 2005 at 07:59:59PM -0400, Paul Davis wrote:

> i consider that the CV never considers changes
> to have been carried out just because it asked. anything else is not
> really MVC. maybe the change requested by CV is not possible for M at
> this time.

Good point. So this means that when M refuses a new value, it should
respond by sending the current value at least to the originator of the
request. In some cases (e.g. a slider) the C and V elements are the same
(the slider's knob), which amounts to an implicit assumption by CV that
its request will be accepted. So a slap on its hands by M is the only
way to correct such hubris.

> void handle_model_state_change()
> {
> change_my_view_state_value (the_model_state->value);
> }
>
> void change_my_view_state_value (float newval)
> {
> if (my_view_state->value != newval) {
> my_view_state->value = newval;
> send_change_to_model (my_view_state->value);
> }
> }
>
> this causes one extra "cycle" in any state change, but ensures absolute
> agreement between V(C) and M. notice that C and (indirectly) M can both
> use change_my_view_state() to achieve their goals.

Interesting. I'll have to go through some mental exercise to convince myself
that this will never cause infinite cycles.

Dave Robillard wrote:

> After much fiddling around with ugly schemes to not send replies to
> certain clients in Om, I just echoed back /everything/ to all registered
> clients, and left it up to the client to deal with it. The comm layer
> is much simpler and understandable because of it.
> ... Generally when given the choice I'll choose complexity in the client
> over complexity in the engine any day.

Thanks to both of you for your response. So at least two experienced
developers agree that updates should go to *all* clients, and that a client
can be expected to handle this gracefully. Since that was my position from
the start, I'll join the club :-)

-- 
FA
Received on Tue Oct 4 16:15:04 2005

This archive was generated by hypermail 2.1.8 : Tue Oct 04 2005 - 16:15:05 EEST