mixxxdj/mixxx — pull request #57 by daschuer (2013-08-06 20:12:13+00:00)
Title: Co request

OK, here is a possible alternative for the CO validation.
As discussed at https://github.com/mixxxdj/mixxx/pull/9 my favorite solution was to double the COs in request and feedback type. But this will clutter the COs a lot. So here is an alternative solution more like ywwg's solution but (I hope) with no race condition.

If the CO needs validation, all requests are routed though the receiver. This can decide now at it's own atomic variables or properly locked, if the requested value can be confirmed or not. The CO value itself is ONLY set by the validator. This solves the moment of the old solution where a not validated value is adopted by the CO just before it is confirmed or rejected.

With the play control I can see an other problem. It is allowed to become "1" if no track is loaded, but a new track is loading. If loading failed, play becomes "0" again. This sound complicated and I am not sure if all other parts of Mixxx are aware of this. Should we change this this?