change format of state_id() return value for VCAMasteStrip to follow other objects...
[ardour.git] / gtk2_ardour / midi_streamview.cc
index ce34fb9b888d1fcc92251b8827acdef4fb0b06c5..e369c5842dfadd46cc68ae7f8be11143ea2ca5ce 100644 (file)
@@ -440,7 +440,7 @@ MidiStreamView::setup_rec_box ()
 
                if (!rec_active &&
                    _trackview.session()->record_status() == Session::Recording &&
-                   _trackview.track()->record_enabled()) {
+                   _trackview.track()->rec_enable_control()->get_value()) {
 
                        if (UIConfiguration::instance().get_show_waveforms_while_recording() && rec_regions.size() == rec_rects.size()) {
 
@@ -512,7 +512,7 @@ MidiStreamView::setup_rec_box ()
 
                } else if (rec_active &&
                           (_trackview.session()->record_status() != Session::Recording ||
-                           !_trackview.track()->record_enabled())) {
+                           !_trackview.track()->rec_enable_control()->get_value())) {
                        screen_update_connection.disconnect();
                        rec_active = false;
                        rec_updating = false;
@@ -619,7 +619,7 @@ MidiStreamView::update_rec_box ()
 uint8_t
 MidiStreamView::y_to_note (double y) const
 {
-       int const n = ((contents_height() - y - 1) / contents_height() * (double)contents_note_range())
+       int const n = ((contents_height() - y) / contents_height() * (double)contents_note_range())
                + lowest_note();
 
        if (n < 0) {
@@ -628,7 +628,8 @@ MidiStreamView::y_to_note (double y) const
                return 127;
        }
 
-       return n;
+       /* min due to rounding and/or off-by-one errors */
+       return min ((uint8_t) n, highest_note());
 }
 
 /** Suspend updates to the regions' note ranges and our