X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=futatabi%2Fmidi_mapper.cpp;h=9cfb3be6749e2f9234fe81c2fde5fb6bbd926da1;hb=refs%2Fheads%2Fmaster;hp=c675820fb3a40ef3a3244818a0fdb249a5460858;hpb=6da5e74d3e13c307de29bd540ff4ce8371000efd;p=nageru diff --git a/futatabi/midi_mapper.cpp b/futatabi/midi_mapper.cpp index c675820..9cfb3be 100644 --- a/futatabi/midi_mapper.cpp +++ b/futatabi/midi_mapper.cpp @@ -143,6 +143,8 @@ void MIDIMapper::note_on_received(int note) bind(&ControllerReceiver::queue, receiver)); match_button(note, MIDIMappingProto::kPlayFieldNumber, MIDIMappingProto::kPlayBankFieldNumber, bind(&ControllerReceiver::play, receiver)); + match_button(note, MIDIMappingProto::kNextFieldNumber, MIDIMappingProto::kNextButtonBankFieldNumber, + bind(&ControllerReceiver::next, receiver)); match_button(note, MIDIMappingProto::kToggleLockFieldNumber, MIDIMappingProto::kToggleLockBankFieldNumber, bind(&ControllerReceiver::toggle_lock, receiver)); @@ -236,6 +238,9 @@ void MIDIMapper::update_lights_lock_held() } else if (play_enabled_light == Blinking) { // Play ready. activate_mapped_light(*mapping_proto, MIDIMappingProto::kPlayReadyFieldNumber, &active_lights); } + if (next_ready_light == On) { + activate_mapped_light(*mapping_proto, MIDIMappingProto::kNextReadyFieldNumber, &active_lights); + } if (locked_light == On) { activate_mapped_light(*mapping_proto, MIDIMappingProto::kLockedFieldNumber, &active_lights); } else if (locked_light == Blinking) { @@ -251,7 +256,7 @@ void MIDIMapper::update_lights_lock_held() unsigned controller = mapping_proto->master_speed_light().controller_number(); unsigned min = mapping_proto->master_speed_light_min(); unsigned max = mapping_proto->master_speed_light_max(); - int speed_light_value = lrintf((max - min - 1) * current_speed / 2.0f) + min; + int speed_light_value = lrintf((max - min) * current_speed / 2.0f) + min; active_lights[MIDIDevice::LightKey{MIDIDevice::LightKey::CONTROLLER, controller}] = speed_light_value; }