diff options
author | André Nusser <andre.nusser@googlemail.com> | 2015-10-15 15:36:17 +0200 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2015-10-17 22:12:54 -0400 |
commit | 66f18914b21837b0d4087d1d5dfff3d654cc3ef7 (patch) | |
tree | f1d5af9dacf56b2ead8a609bc50688e77054d181 /libs/ardour/midi_model.cc | |
parent | bc83699e44ddaff9318dad95038def3ed20f42f5 (diff) |
Split transpose in MidiModel into two functions.
Diffstat (limited to 'libs/ardour/midi_model.cc')
-rw-r--r-- | libs/ardour/midi_model.cc | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/libs/ardour/midi_model.cc b/libs/ardour/midi_model.cc index fd08428a68..5997c5b548 100644 --- a/libs/ardour/midi_model.cc +++ b/libs/ardour/midi_model.cc @@ -1983,6 +1983,20 @@ MidiModel::insert_silence_at_start (TimeType t) } } +void +MidiModel::transpose (NoteDiffCommand* c, const NotePtr note_ptr, int semitones) +{ + int new_note = note_ptr->note() + semitones; + + if (new_note < 0) { + new_note = 0; + } else if (new_note > 127) { + new_note = 127; + } + + c->change (note_ptr, NoteDiffCommand::NoteNumber, (uint8_t) new_note); +} + /** Transpose notes in a time range by a given number of semitones. Notes * will be clamped at 0 and 127 if the transposition would make them exceed * that range. @@ -2007,16 +2021,7 @@ MidiModel::transpose (TimeType from, TimeType to, int semitones) } else if ((*i)->time() >= from) { - int new_note = (*i)->note() + semitones; - - if (new_note < 0) { - new_note = 0; - } else if (new_note > 127) { - new_note = 127; - } - - c->change (*i, NoteDiffCommand::NoteNumber, (uint8_t) new_note); - + transpose (c, *i, semitones); } } |