diff options
author | André Nusser <andre.nusser@googlemail.com> | 2015-10-15 15:44:09 +0200 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2015-10-17 22:12:55 -0400 |
commit | e807fe2b289be7736cd33df6fdc4b50ef4a4c099 (patch) | |
tree | 18356bba6e7a7f5bd124697ccc5f2f56d4b1314b /gtk2_ardour/editor_ops.cc | |
parent | bd02a7f817e0be2c4b8f8ec9c86c21ebb2417da5 (diff) |
Introduce "Transpose..." also in the context menu of selected notes.
Diffstat (limited to 'gtk2_ardour/editor_ops.cc')
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index bfd7b14492..2d718284d2 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -57,6 +57,7 @@ #include "ardour/session_playlists.h" #include "ardour/strip_silence.h" #include "ardour/transient_detector.h" +#include "ardour/transpose.h" #include "canvas/canvas.h" @@ -5354,6 +5355,30 @@ Editor::transform_regions (const RegionSelection& rs) } void +Editor::transpose_region () +{ + if (_session) { + transpose_regions(get_regions_from_selection_and_entered ()); + } +} + +void +Editor::transpose_regions (const RegionSelection& rs) +{ + if (rs.n_midi_regions() == 0) { + return; + } + + TransposeDialog d; + int const r = d.run (); + + if (r == RESPONSE_ACCEPT) { + Transpose transpose(d.semitones ()); + apply_midi_note_edit_op (transpose, rs); + } +} + +void Editor::insert_patch_change (bool from_context) { RegionSelection rs = get_regions_from_selection_and_entered (); @@ -6426,30 +6451,6 @@ Editor::pitch_shift_region () } void -Editor::transpose_region () -{ - RegionSelection rs = get_regions_from_selection_and_entered (); - - list<MidiRegionView*> midi_region_views; - for (RegionSelection::iterator i = rs.begin(); i != rs.end(); ++i) { - MidiRegionView* mrv = dynamic_cast<MidiRegionView*> (*i); - if (mrv) { - midi_region_views.push_back (mrv); - } - } - - TransposeDialog d; - int const r = d.run (); - if (r != RESPONSE_ACCEPT) { - return; - } - - for (list<MidiRegionView*>::iterator i = midi_region_views.begin(); i != midi_region_views.end(); ++i) { - (*i)->midi_region()->transpose (d.semitones ()); - } -} - -void Editor::set_tempo_from_region () { RegionSelection rs = get_regions_from_selection_and_entered (); |