X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=futatabi%2Fmidi_mapping_dialog.cpp;h=de393c38dacdbe2002de8c7441aa96d5e7402ddc;hb=refs%2Fheads%2Fmaster;hp=67b33d3c1eb37b9f314ce801db91e69ec3efd0d1;hpb=5d52ea28eea891d2cd5b9485a1348ec7302df157;p=nageru diff --git a/futatabi/midi_mapping_dialog.cpp b/futatabi/midi_mapping_dialog.cpp index 67b33d3..de393c3 100644 --- a/futatabi/midi_mapping_dialog.cpp +++ b/futatabi/midi_mapping_dialog.cpp @@ -293,23 +293,25 @@ unique_ptr MIDIMappingDialog::construct_mapping_proto_from_ui( { const InstantiatedSpinner &is = camera_button_spinners[camera_idx]; - MIDIButtonProto *button_proto = - get_mutable_message(camera_proto, is.field_number); int val = is.spinner->value(); if (val != -1) { + MIDIButtonProto *button_proto = + get_mutable_message(camera_proto, is.field_number); button_proto->set_note_number(val); } } { const InstantiatedSpinner &is = camera_button_light_spinners[camera_idx]; + int val = is.spinner->value(); + int val2 = is.spinner2->value(); + + if (val == -1 && val2 == -1) continue; + MIDILightProto *light_proto = get_mutable_message(camera_proto, is.field_number); - int val = is.spinner->value(); if (val != -1) { light_proto->set_note_number(val); } - - int val2 = is.spinner2->value(); if (val2 != -1) { light_proto->set_velocity(val2); } @@ -490,16 +492,20 @@ void MIDIMappingDialog::controller_changed(unsigned controller) void MIDIMappingDialog::note_on(unsigned note) { post_to_main_thread([=]{ - for (const InstantiatedSpinner &is : button_spinners) { - if (is.spinner->hasFocus()) { - is.spinner->setValue(note); - is.spinner->selectAll(); + for (const auto &spinners : { button_spinners, camera_button_spinners }) { + for (const InstantiatedSpinner &is : spinners) { + if (is.spinner->hasFocus()) { + is.spinner->setValue(note); + is.spinner->selectAll(); + } } } - for (const InstantiatedSpinner &is : button_light_spinners) { - if (is.spinner->hasFocus()) { - is.spinner->setValue(note); - is.spinner->selectAll(); + for (const auto &light_spinners : { button_light_spinners, camera_button_light_spinners }) { + for (const InstantiatedSpinner &is : light_spinners) { + if (is.spinner->hasFocus()) { + is.spinner->setValue(note); + is.spinner->selectAll(); + } } } });