summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/midi_time_axis.cc37
-rw-r--r--gtk2_ardour/midi_time_axis.h1
-rw-r--r--libs/ardour/meter.cc6
3 files changed, 41 insertions, 3 deletions
diff --git a/gtk2_ardour/midi_time_axis.cc b/gtk2_ardour/midi_time_axis.cc
index b0cc49f388..8d1f46d55a 100644
--- a/gtk2_ardour/midi_time_axis.cc
+++ b/gtk2_ardour/midi_time_axis.cc
@@ -190,6 +190,43 @@ MidiTimeAxisView::hide ()
}
void
+MidiTimeAxisView::set_height (uint32_t h)
+{
+ RouteTimeAxisView::set_height (h);
+
+ if (height >= hLarger) {
+ _midi_expander.show();
+ if (is_track() && _range_scroomer)
+ _range_scroomer->show();
+ if (is_track() && _piano_roll_header)
+ _piano_roll_header->show();
+
+ } else if (height >= hLarge) {
+ _midi_expander.show();
+ _midi_expander.set_expanded(FALSE);
+ if (is_track() && _range_scroomer)
+ _range_scroomer->show();
+ if (is_track() && _piano_roll_header)
+ _piano_roll_header->show();
+
+ } else if (height >= hNormal) {
+ _midi_expander.show();
+ _midi_expander.set_expanded(FALSE);
+ if (is_track() && _range_scroomer)
+ _range_scroomer->hide();
+ if (is_track() && _piano_roll_header)
+ _piano_roll_header->hide();
+ } else {
+ _midi_expander.hide();
+ _midi_expander.set_expanded(FALSE);
+ if (is_track() && _range_scroomer)
+ _range_scroomer->hide();
+ if (is_track() && _piano_roll_header)
+ _piano_roll_header->hide();
+ }
+}
+
+void
MidiTimeAxisView::append_extra_display_menu_items ()
{
using namespace Menu_Helpers;
diff --git a/gtk2_ardour/midi_time_axis.h b/gtk2_ardour/midi_time_axis.h
index 484cf52652..7a1a3ffc5c 100644
--- a/gtk2_ardour/midi_time_axis.h
+++ b/gtk2_ardour/midi_time_axis.h
@@ -64,6 +64,7 @@ class MidiTimeAxisView : public RouteTimeAxisView
/* overridden from parent to store display state */
guint32 show_at (double y, int& nth, Gtk::VBox *parent);
+ void set_height (uint32_t);
void hide ();
void show_all_automation ();
diff --git a/libs/ardour/meter.cc b/libs/ardour/meter.cc
index b718241333..8ad5e391a2 100644
--- a/libs/ardour/meter.cc
+++ b/libs/ardour/meter.cc
@@ -35,9 +35,9 @@ namespace ARDOUR {
void
PeakMeter::run_in_place (BufferSet& bufs, nframes_t start_frame, nframes_t end_frame, nframes_t nframes, nframes_t offset)
{
- size_t n = 0;
- size_t meterable = std::min((size_t)bufs.count().n_total(), _peak_power.size());
- size_t limit = std::min (meterable, bufs.count().n_midi());
+ uint32_t n = 0;
+ uint32_t meterable = std::min(bufs.count().n_total(), (uint32_t)_peak_power.size());
+ uint32_t limit = std::min (meterable, bufs.count().n_midi());
// Meter what we have (midi)
for ( ; n < limit; ++n) {