-#include <ardour/midi_diskstream.h>
-#include <ardour/midi_playlist.h>
-#include <ardour/midi_region.h>
-#include <ardour/midi_source.h>
-#include <ardour/midi_track.h>
-#include <ardour/region_factory.h>
-#include <ardour/smf_source.h>
+#include "ardour/midi_diskstream.h"
+#include "ardour/midi_playlist.h"
+#include "ardour/midi_region.h"
+#include "ardour/midi_source.h"
+#include "ardour/midi_track.h"
+#include "ardour/region_factory.h"
+#include "ardour/smf_source.h"
- MidiRegionView *region_view;
- list<RegionView *>::iterator i;
+ RegionView* region_view = new MidiRegionView (canvas_group, _trackview, region,
+ _samples_per_unit, region_color);
+
+ region_view->init (region_color, false);
+
+ return region_view;
+}
- for (i = region_views.begin(); i != region_views.end(); ++i) {
+RegionView*
+MidiStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wfd, bool recording)
+{
+ boost::shared_ptr<MidiRegion> region = boost::dynamic_pointer_cast<MidiRegion> (r);
+
+ if (region == 0) {
+ return 0;
+ }
+
+ for (list<RegionView*>::iterator i = region_views.begin(); i != region_views.end(); ++i) {
if ((*i)->region() == r) {
/* great. we already have a MidiRegionView for this Region. use it again. */
if ((*i)->region() == r) {
/* great. we already have a MidiRegionView for this Region. use it again. */
- region_view = new MidiRegionView (canvas_group, _trackview, region,
- _samples_per_unit, region_color);
-
- region_view->init (region_color, false);
/* catch regionview going away */
region->GoingAway.connect (bind (mem_fun (*this, &MidiStreamView::remove_region_view), region));
/* catch regionview going away */
region->GoingAway.connect (bind (mem_fun (*this, &MidiStreamView::remove_region_view), region));
// Add and display region views, and flag them as valid
_trackview.get_diskstream()->playlist()->foreach_region(
// Add and display region views, and flag them as valid
_trackview.get_diskstream()->playlist()->foreach_region(