diff options
author | Carl Hetherington <carl@carlh.net> | 2011-03-07 17:17:11 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2011-03-07 17:17:11 +0000 |
commit | e64486acfad5c366f33d13ccd9b1303e0767fbe9 (patch) | |
tree | 236cd43311fd7d86a5ef153800f7412eaf62a5be /gtk2_ardour/midi_streamview.cc | |
parent | 0d40ff55c8d0137019bf2f62945ef981238c32fc (diff) |
Clamp output of y_to_note so that it doesn't return out-of-range values. Should fix #3823.
git-svn-id: svn://localhost/ardour2/branches/3.0@9096 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/midi_streamview.cc')
-rw-r--r-- | gtk2_ardour/midi_streamview.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gtk2_ardour/midi_streamview.cc b/gtk2_ardour/midi_streamview.cc index ed60b14256..56e34c8a79 100644 --- a/gtk2_ardour/midi_streamview.cc +++ b/gtk2_ardour/midi_streamview.cc @@ -628,3 +628,17 @@ MidiStreamView::update_rec_box () mrv->extend_active_notes (); } +uint8_t +MidiStreamView::y_to_note (double y) const +{ + int const n = ((contents_height() - y - 1) / contents_height() * (double)contents_note_range()) + + lowest_note(); + + if (n < 0) { + return 0; + } else if (n > 127) { + return 127; + } + + return n; +} |