<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Dec 5, 2012 at 12:13 PM, Lecoq Maxime <span dir="ltr"><<a href="mailto:maxime.lecoq.a@wanadoo.fr" target="_blank">maxime.lecoq.a@wanadoo.fr</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p>Hi everyone,<br><br>First, congratulations for your work on Ardour. We are two computer science french student at the University of Caen. In the course of our studies (year project) we are working on the Ardour development. For now, we are trying to implement the "All plugin on/off button" feature.</p>
<p><br>We had some questions to ask you:<br><br>- First, can we be intrusive in the code structure ? For example, in the case of the "All plugin on/off button" feature, we need to make the link between MixerStrip and ProcessorBox classes: we have to add an attribute in the class MixerStrip which points to its own ProcessorBox. Can we do that? Another solution is also possible but it's less smart: we could add a multimap to link a MixerStrip with its own "plugins". The first solution constrains us to change code in much parts of the code structure, so...<br>
</p></blockquote><div>intrusive changes are the rule, not the exception. just do it. in this particular case, i'm confused though, since MixerStrip::processor_box is already a member.<br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<p><br>- Otherwise, it seems like Ardour is an c/c++ hybrid because some parts looks like writen in C/GTK+ coding style (void pointer, gui componants have a parent pointer, REGISTER?...)<br></p></blockquote><div>void pointers are a part of C++ too. they do break type-safety, and we try to avoid them except where the pointer is never "typed" (i.e. its value is all that matters)<br>
GUI components with parents is typical of most GUI toolkits.<br>REGISTER... is preprocessor stuff used to do things that are stupidly cumbersome any other way.<br> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<p>- Why the controller is in the view?<br></p></blockquote><div>in most GUI programming, the controller and the view get combined. apple have done some work that partially separates them, but its a bit of a wierd hybrid. when the onscreen represenation of model state is the same thing that the user interacts with in order to change the model state, there is a fairly natural tendency to combine the controller and the view. its not necessarily a good tendency, but its what we do (for now).<br>
<br></div></div></div>