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
This commit is contained in:
parent
0d40ff55c8
commit
e64486acfa
@ -628,3 +628,17 @@ MidiStreamView::update_rec_box ()
|
|||||||
mrv->extend_active_notes ();
|
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;
|
||||||
|
}
|
||||||
|
@ -83,10 +83,7 @@ class MidiStreamView : public StreamView
|
|||||||
{ return contents_height()
|
{ return contents_height()
|
||||||
- (note + 1 - lowest_note()) * note_height() + 1; }
|
- (note + 1 - lowest_note()) * note_height() + 1; }
|
||||||
|
|
||||||
inline uint8_t y_to_note(double y) const
|
uint8_t y_to_note(double y) const;
|
||||||
{ return (uint8_t)((contents_height() - y - 1)
|
|
||||||
/ contents_height() * (double)contents_note_range())
|
|
||||||
+ lowest_note(); }
|
|
||||||
|
|
||||||
inline double note_height() const
|
inline double note_height() const
|
||||||
{ return contents_height() / (double)contents_note_range(); }
|
{ return contents_height() / (double)contents_note_range(); }
|
||||||
|
Loading…
Reference in New Issue
Block a user