13
0

push2: always use a contrasting color when flashing played pads

This commit is contained in:
Paul Davis 2016-09-22 10:47:34 -05:00
parent cb340bf190
commit f12150a1ed
2 changed files with 5 additions and 4 deletions

View File

@ -136,6 +136,7 @@ Push2::Push2 (ARDOUR::Session& s)
, percussion (false)
, _pressure_mode (AfterTouch)
, selection_color (LED::Green)
, contrast_color (LED::Green)
{
build_maps ();
@ -817,10 +818,7 @@ Push2::handle_midi_note_on_message (MIDI::Parser& parser, MIDI::EventTwoBytes* e
pad->set_state (LED::OneShot24th);
write (pad->state_msg());
} else if (pad->do_when_pressed == Pad::FlashOff) {
/* XXX really need to pick a contrasting color from
selection color here.
*/
pad->set_color (LED::Green);
pad->set_color (contrast_color);
pad->set_state (LED::OneShot24th);
write (pad->state_msg());
}
@ -1530,9 +1528,11 @@ Push2::stripable_selection_change (StripableNotificationListPtr selected)
new_pad_target->input()->connect (new_pad_target->input()->nth (0), pad_port->name(), this);
current_pad_target = new_pad_target;
selection_color = get_color_index (new_pad_target->presentation_info().color());
contrast_color = get_color_index (ArdourCanvas::HSV (new_pad_target->presentation_info().color()).opposite().color());
} else {
current_pad_target.reset ();
selection_color = LED::Green;
contrast_color = LED::Green;
}
reset_pad_colors ();

View File

@ -593,6 +593,7 @@ class Push2 : public ARDOUR::ControlProtocol
void request_pressure_mode ();
uint8_t selection_color;
uint8_t contrast_color;
};
} /* namespace */