diff options
-rw-r--r-- | libs/surfaces/push2/push2.cc | 15 | ||||
-rw-r--r-- | libs/surfaces/push2/push2.h | 2 |
2 files changed, 17 insertions, 0 deletions
diff --git a/libs/surfaces/push2/push2.cc b/libs/surfaces/push2/push2.cc index ccc541296f..8f581f41da 100644 --- a/libs/surfaces/push2/push2.cc +++ b/libs/surfaces/push2/push2.cc @@ -1275,6 +1275,21 @@ Push2::pad_note (int row, int col) const } void +Push2::update_selection_color () +{ + boost::shared_ptr<MidiTrack> current_midi_track = current_pad_target.lock(); + + if (!current_midi_track) { + return; + } + + selection_color = get_color_index (current_midi_track->presentation_info().color()); + contrast_color = get_color_index (ArdourCanvas::HSV (current_midi_track->presentation_info().color()).opposite().color()); + + reset_pad_colors (); +} + +void Push2::reset_pad_colors () { set_pad_scale (_scale_root, _root_octave, _mode, _in_key); diff --git a/libs/surfaces/push2/push2.h b/libs/surfaces/push2/push2.h index 47e4ab051e..30422775d4 100644 --- a/libs/surfaces/push2/push2.h +++ b/libs/surfaces/push2/push2.h @@ -329,6 +329,8 @@ class Push2 : public ARDOUR::ControlProtocol int pad_note (int row, int col) const; PBD::Signal0<void> PadChange; + void update_selection_color (); + void set_pad_scale (int root, int octave, MusicalMode::Type mode, bool inkey); PBD::Signal0<void> ScaleChange; |