_note_group->raise_to_top();
PublicEditor::DropDownKeys.connect (sigc::mem_fun (*this, &MidiRegionView::drop_down_keys));
+
+ MidiTimeAxisView *time_axis = dynamic_cast<MidiTimeAxisView *>(&tv);
+ if (time_axis) {
+ _last_channel_mode = time_axis->channel_selector().get_channel_mode();
+ _last_channel_selection = time_axis->channel_selector().get_selected_channels();
+ }
+
Config->ParameterChanged.connect (*this, invalidator (*this), boost::bind (&MidiRegionView::parameter_changed, this, _1), gui_context());
connect_to_diskstream ();
_note_group->raise_to_top();
PublicEditor::DropDownKeys.connect (sigc::mem_fun (*this, &MidiRegionView::drop_down_keys));
+ MidiTimeAxisView *time_axis = dynamic_cast<MidiTimeAxisView *>(&tv);
+ if (time_axis) {
+ _last_channel_mode = time_axis->channel_selector().get_channel_mode();
+ _last_channel_selection = time_axis->channel_selector().get_selected_channels();
+ }
+
connect_to_diskstream ();
SelectionCleared.connect (_selection_cleared_connection, invalidator (*this), boost::bind (&MidiRegionView::selection_cleared, this, _1), gui_context ());
}
_last_channel_selection = mask;
+ _last_channel_mode = mode;
_patch_changes.clear ();
display_patch_changes ();
Evoral::MIDIEvent<MidiBuffer::TimeType> const ev (*i, false);
assert (ev.buffer ());
+ if(ev.is_channel_event()) {
+ if (_last_channel_mode == FilterChannels) {
+ if(((uint16_t(1) << ev.channel()) & _last_channel_selection) == 0) {
+ continue;
+ }
+ }
+ }
+
/* ev.time() is in session frames, so (ev.time() - converter.origin_b()) is
frames from the start of the source, and so time_beats is in terms of the
source.