summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_streamview.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-03-07 17:17:11 +0000
committerCarl Hetherington <carl@carlh.net>2011-03-07 17:17:11 +0000
commite64486acfad5c366f33d13ccd9b1303e0767fbe9 (patch)
tree236cd43311fd7d86a5ef153800f7412eaf62a5be /gtk2_ardour/midi_streamview.cc
parent0d40ff55c8d0137019bf2f62945ef981238c32fc (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.cc14
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;
+}