On Tue, Apr 27, 2010 at 10:09 AM, Bruno Buccolo <[email protected]> wrote:
> Hi Albert,
>
> Thanks for your reply, it makes me really happy to see that I'm coding the
> way you suggested.
> Actually I've already done that last week. I've commited it here. I was a
> bit confused because the
> code for the DlgMidiLearn would create entries on the midi mapping input
> table (which is fine for the Add operation)
> however for the Update operation (when the user wants to change the midi
> note/type) it is not fine to
> create another entry, because it'll make the table clutered. Have you got
> any suggestions around this?

I think you'll want to modify the behaviour of this function:
 void MidiMapping::finishMidiLearn(MidiMessage message)

Thanks,
Albert


>
> 2010/4/27 Albert Santoni <[email protected]>
>>
>> Hi Bruno
>>
>> On Tue, Apr 27, 2010 at 5:56 AM, Bruno Buccolo <[email protected]>
>> wrote:
>> > Hi,
>> >
>> > I've ran into some issues I'd like to discuss before continuing
>> > implementation:
>> >
>> > The Learn button should update a given midi mapping. As of now, it is
>> > just
>> > creating
>> > another midi mapping, with the same controls/group as the selected one
>> > and
>> > with
>> > the midi code/type the user "moves" in the controller. For a correct
>> > behaviour, it should
>> > update instead of creating and deleting. For updating we would need the
>> > "primary keys"
>> > so we can find the correct midi mappings to update. I don't know why,
>> > but it
>> > feels dirty
>> > to pass that arguments to the Dialog, I guess there's no way around it?
>>
>> I see what you mean but I don't think there's any way around it. The
>> list of controls that we want mapped should be an "input" for this
>> dialog, so I think passing it as a parameter to the constructor is
>> probably the right thing to do.
>>
>> >
>> > At first, I was trying to reuse all the DlgMidiLearning code, but I feel
>> > that I'll have to add
>> > much complexity to it, so instead:
>> >
>> > 1) I think I'll create another DlgMidiLearning, and maybe rename the
>> > first,
>> > the original, to DlgMidiLearningWizard. This way I can be more flexible
>> > about it, but will not reuse
>> > the code as intended.
>> >
>> > 2) Or I can refactor a bit of the DlgMidiLearning so my new methods
>> > don't
>> > get
>> > complicated and better reuse code. Which is preferred? (I like 2 better)
>>
>> One way you can do this is to pass a QList of the MixxxControls that
>> you want mapped into the constructor of DlgMidiLearning. You could
>> make that replace the default m_controlsToBind if the parameter is
>> passed. If an empty QList is passed into the function, then you can
>> make it use the default m_controlsToBind.
>>
>> The constructor would look like:
>> DlgMidiLearning::DlgMidiLearning(QWidget * parent, MidiMapping*
>> mapping, QList<MixxxControl> controlsToLearn)
>>
>> Does that make sense?
>>
>> >
>> > This also leads me to question: What kind of code should be in a Dialog?
>> > Are there any consistency restrictions Qt-wise?
>>
>> C++ code! :)
>>
>> Style-wise, a general suggestion is to make your code blend in with
>> existing code. Mixxx's code isn't super consistent in style though.
>> When in doubt, follow the Google C++ Style Guide:
>> http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
>> (Is that what you meant?)
>>
>> Good stuff!
>>
>> Thanks,
>> Albert
>>
>>
>> >
>> > Well even tough it's moving slowly, I'm pretty happy to have something
>> > working =)
>> >
>> > Thanks!
>> >
>> >
>> > 2010/4/18 Arnaud LE BRETON <[email protected]>
>> >>
>> >> Hello to all,
>> >>
>> >> On 18 April 2010 17:59, Bruno Buccolo <[email protected]> wrote:
>> >> > Hmmm I like the idea of the context menu.
>> >> > Doesn't seem like much trouble, it's just one more button
>> >> > and a slot to connect. =)
>> >>
>> >> Just for info:
>> >>
>> >> an example of this context button for MIDI learning can be found in
>> >> sooperlooper, a live sampling looper for Linux and OS X:
>> >>
>> >> http://sonosaurus.com/sooperlooper/index.html
>> >>
>> >> I have used it and it is a really smooth way to edit the midi mappings.
>> >>
>> >>
>> >> >
>> >> > I created a branch for this, but haven't commited yet.
>> >> >
>> >> >
>> >> > On Apr 18, 2010, at 2:58 AM, Sean M. Pappalardo - D.J. Pegasus wrote:
>> >> >
>> >> >> Hello, Bruno.
>> >> >>
>> >> >> All of your ideas sound good to me, and I think it makes sense to
>> >> >> have
>> >> >> all of them, since I can see using the wizard with a custom set of
>> >> >> controls when there are many the user wants to map, and I can see
>> >> >> doing
>> >> >> them one-at-a-time directly in the table when the user is just
>> >> >> tweaking.
>> >> >>
>> >> >> The only suggestion I'd give is for the one-at-a-time,
>> >> >> directly-in-the-table method, that you add a right-click context
>> >> >> menu
>> >> >> with a "Learn this entry" option or similar, if it's not too much
>> >> >> trouble.
>> >> >>
>> >> >> Sincerely,
>> >> >> Sean M. Pappalardo
>> >> >> "D.J. Pegasus"
>> >> >
>> >> > Bruno Buccolo
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > ------------------------------------------------------------------------------
>> >> > Download Intel&#174; Parallel Studio Eval
>> >> > Try the new software tools for yourself. Speed compiling, find bugs
>> >> > proactively, and fine-tune applications for parallel performance.
>> >> > See why Intel Parallel Studio got high marks during beta.
>> >> > http://p.sf.net/sfu/intel-sw-dev
>> >> > _______________________________________________
>> >> > Mixxx-devel mailing list
>> >> > [email protected]
>> >> > https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Arnaud LE BRETON
>> >>
>> >>  "Computers are useless they can only give answers."
>> >>                                                        Pablo  Picasso
>> >
>> >
>> >
>> > --
>> > Bruno de Campos Buccolo
>> >
>> >
>> > ------------------------------------------------------------------------------
>> >
>> > _______________________________________________
>> > Mixxx-devel mailing list
>> > [email protected]
>> > https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>> >
>> >
>
>
>
> --
> Bruno de Campos Buccolo
>

------------------------------------------------------------------------------
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to