summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/midi_region_view.cc5
-rw-r--r--gtk2_ardour/midi_region_view.h29
-rw-r--r--gtk2_ardour/midi_streamview.cc16
3 files changed, 29 insertions, 21 deletions
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index 96dd9b27a7..cbd8596ea1 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -142,8 +142,9 @@ MidiRegionView::MidiRegionView (ArdourCanvas::Container* parent,
boost::shared_ptr<MidiRegion> r,
double spu,
uint32_t basic_color,
+ bool recording,
TimeAxisViewItem::Visibility visibility)
- : RegionView (parent, tv, r, spu, basic_color, false, visibility)
+ : RegionView (parent, tv, r, spu, basic_color, recording, visibility)
, _current_range_min(0)
, _current_range_max(0)
, _region_relative_time_converter(r->session().tempo_map(), r->position())
@@ -340,7 +341,7 @@ MidiRegionView::connect_to_diskstream ()
bool
MidiRegionView::canvas_group_event(GdkEvent* ev)
{
- if (in_destructor) {
+ if (in_destructor || _recregion) {
return false;
}
diff --git a/gtk2_ardour/midi_region_view.h b/gtk2_ardour/midi_region_view.h
index 56fcbbdde8..a2d364c0d6 100644
--- a/gtk2_ardour/midi_region_view.h
+++ b/gtk2_ardour/midi_region_view.h
@@ -68,11 +68,20 @@ public:
typedef Evoral::Note<Evoral::MusicalTime> NoteType;
typedef Evoral::Sequence<Evoral::MusicalTime>::Notes Notes;
- MidiRegionView (ArdourCanvas::Container *,
- RouteTimeAxisView&,
- boost::shared_ptr<ARDOUR::MidiRegion>,
- double initial_samples_per_pixel,
- uint32_t base_color);
+ MidiRegionView (ArdourCanvas::Container* parent,
+ RouteTimeAxisView& tv,
+ boost::shared_ptr<ARDOUR::MidiRegion> r,
+ double samples_per_pixel,
+ uint32_t basic_color);
+
+ MidiRegionView (ArdourCanvas::Container* parent,
+ RouteTimeAxisView& tv,
+ boost::shared_ptr<ARDOUR::MidiRegion> r,
+ double samples_per_pixel,
+ uint32_t basic_color,
+ bool recording,
+ Visibility visibility);
+
MidiRegionView (const MidiRegionView& other);
MidiRegionView (const MidiRegionView& other, boost::shared_ptr<ARDOUR::MidiRegion>);
@@ -322,16 +331,6 @@ public:
ARDOUR::InstrumentInfo& instrument_info() const;
protected:
- /** Allows derived types to specify their visibility requirements
- * to the TimeAxisViewItem parent class.
- */
- MidiRegionView (ArdourCanvas::Container *,
- RouteTimeAxisView&,
- boost::shared_ptr<ARDOUR::MidiRegion>,
- double samples_per_pixel,
- uint32_t basic_color,
- TimeAxisViewItem::Visibility);
-
void region_resized (const PBD::PropertyChange&);
void set_flags (XMLNode *);
diff --git a/gtk2_ardour/midi_streamview.cc b/gtk2_ardour/midi_streamview.cc
index e91a1c683d..d124426cc9 100644
--- a/gtk2_ardour/midi_streamview.cc
+++ b/gtk2_ardour/midi_streamview.cc
@@ -100,7 +100,7 @@ MidiStreamView::~MidiStreamView ()
}
RegionView*
-MidiStreamView::create_region_view (boost::shared_ptr<Region> r, bool /*wfd*/, bool)
+MidiStreamView::create_region_view (boost::shared_ptr<Region> r, bool /*wfd*/, bool recording)
{
boost::shared_ptr<MidiRegion> region = boost::dynamic_pointer_cast<MidiRegion> (r);
@@ -108,8 +108,16 @@ MidiStreamView::create_region_view (boost::shared_ptr<Region> r, bool /*wfd*/, b
return 0;
}
- RegionView* region_view = new MidiRegionView (_canvas_group, _trackview, region,
- _samples_per_pixel, region_color);
+ RegionView* region_view = NULL;
+ if (recording) {
+ region_view = new MidiRegionView (
+ _canvas_group, _trackview, region,
+ _samples_per_pixel, region_color, recording,
+ TimeAxisViewItem::Visibility(TimeAxisViewItem::ShowFrame));
+ } else {
+ region_view = new MidiRegionView (_canvas_group, _trackview, region,
+ _samples_per_pixel, region_color);
+ }
region_view->init (false);
@@ -488,7 +496,7 @@ MidiStreamView::setup_rec_box ()
region->set_start (_trackview.track()->current_capture_start()
- _trackview.track()->get_capture_start_frame (0));
region->set_position (_trackview.track()->current_capture_start());
- RegionView* rv = add_region_view_internal (region, false);
+ RegionView* rv = add_region_view_internal (region, false, true);
MidiRegionView* mrv = dynamic_cast<MidiRegionView*> (rv);
mrv->begin_write ();