summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_time_axis.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-02-10 18:16:25 +0000
committerDavid Robillard <d@drobilla.net>2008-02-10 18:16:25 +0000
commit1b657585572298d1a69a7b43e611f59b7e185df3 (patch)
tree5b0ca4e1f222357499f97165a13308ac070c5ddc /gtk2_ardour/midi_time_axis.cc
parente76b028ffdf054775cb697174d00cd0222d675c6 (diff)
Committed underlay support (from Audun).
git-svn-id: svn://localhost/ardour2/branches/3.0@3037 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/midi_time_axis.cc')
-rw-r--r--gtk2_ardour/midi_time_axis.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/gtk2_ardour/midi_time_axis.cc b/gtk2_ardour/midi_time_axis.cc
index 534305eaa6..cb72363f88 100644
--- a/gtk2_ardour/midi_time_axis.cc
+++ b/gtk2_ardour/midi_time_axis.cc
@@ -69,6 +69,7 @@
#include "utils.h"
#include "midi_scroomer.h"
#include "piano_roll_header.h"
+#include "ghostregion.h"
#include <ardour/midi_track.h>
@@ -126,13 +127,25 @@ MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session& sess, boost::shar
controls_base_selected_name = "MidiTrackControlsBaseSelected";
controls_base_unselected_name = "MidiTrackControlsBaseUnselected";
+ midi_view()->NoteRangeChanged.connect (mem_fun(*this, &MidiTimeAxisView::update_range));
+
/* ask for notifications of any new RegionViews */
+ _view->RegionViewAdded.connect (mem_fun(*this, &MidiTimeAxisView::region_view_added));
_view->attach ();
}
}
MidiTimeAxisView::~MidiTimeAxisView ()
{
+ if(_piano_roll_header) {
+ delete _piano_roll_header;
+ _piano_roll_header = 0;
+ }
+
+ if(_range_scroomer) {
+ delete _range_scroomer;
+ _range_scroomer = 0;
+ }
}
MidiStreamView*
@@ -248,6 +261,17 @@ MidiTimeAxisView::set_note_range(MidiStreamView::VisibleNoteRange range)
}
+void
+MidiTimeAxisView::update_range() {
+ MidiGhostRegion* mgr;
+
+ for(list<GhostRegion*>::iterator i = ghosts.begin(); i != ghosts.end(); ++i) {
+ if((mgr = dynamic_cast<MidiGhostRegion*>(*i)) != 0) {
+ mgr->update_range();
+ }
+ }
+}
+
/** Prompt for a controller with a dialog and add an automation track for it
*/
void