From 21aee4e7cd48776374d4f7f02b4b70de4b58b1f0 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Mon, 8 Apr 2019 22:27:12 +0200 Subject: [PATCH] Fix saving of MIDI mappings with camera switch buttons that have no associated lights (or vice versa). This could cause invalid protobufs to be saved, causing assertion errors when loading them back. Reported by Niall Walsh. --- futatabi/midi_mapping_dialog.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/futatabi/midi_mapping_dialog.cpp b/futatabi/midi_mapping_dialog.cpp index 6cd4b6e..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); } -- 2.39.2