case NonLayered:
case Normal:
if (recording) {
- region_view = new AudioRegionView (canvas_group, _trackview, region,
+ region_view = new AudioRegionView (_canvas_group, _trackview, region,
_samples_per_unit, region_color, recording, TimeAxisViewItem::Visibility(
TimeAxisViewItem::ShowFrame | TimeAxisViewItem::HideFrameRight));
} else {
- region_view = new AudioRegionView (canvas_group, _trackview, region,
+ region_view = new AudioRegionView (_canvas_group, _trackview, region,
_samples_per_unit, region_color);
}
break;
case Destructive:
- region_view = new TapeAudioRegionView (canvas_group, _trackview, region,
+ region_view = new TapeAudioRegionView (_canvas_group, _trackview, region,
_samples_per_unit, region_color);
break;
default:
break;
}
- ArdourCanvas::SimpleRect * rec_rect = new Gnome::Canvas::SimpleRect (*canvas_group);
+ ArdourCanvas::SimpleRect * rec_rect = new Gnome::Canvas::SimpleRect (*_canvas_group);
rec_rect->property_x1() = xstart;
rec_rect->property_y1() = 1.0;
rec_rect->property_x2() = xend;
}
}
- region_view = new AutomationRegionView (canvas_group, _automation_view, region,
+ region_view = new AutomationRegionView (_canvas_group, _automation_view, region,
_controller->controllable()->parameter(), list,
_samples_per_unit, region_color);
}
/* use a group dedicated to MIDI underlays. Audio underlays are not in this group. */
- midi_underlay_group = new ArdourCanvas::Group (*canvas_group);
+ midi_underlay_group = new ArdourCanvas::Group (*_canvas_group);
midi_underlay_group->lower_to_bottom();
/* put the note lines in the timeaxisview's group, so it
can be put below ghost regions from MIDI underlays*/
- _note_lines = new ArdourCanvas::LineSet(*canvas_group, ArdourCanvas::LineSet::Horizontal);
+ _note_lines = new ArdourCanvas::LineSet(*_canvas_group, ArdourCanvas::LineSet::Horizontal);
_note_lines->property_x1() = 0;
_note_lines->property_y1() = 0;
return 0;
}
- RegionView* region_view = new MidiRegionView (canvas_group, _trackview, region,
+ RegionView* region_view = new MidiRegionView (_canvas_group, _trackview, region,
_samples_per_unit, region_color);
region_view->init (region_color, false);
xend = xstart;
fill_color = ARDOUR_UI::config()->canvasvar_RecordingRect.get();
- ArdourCanvas::SimpleRect * rec_rect = new Gnome::Canvas::SimpleRect (*canvas_group);
+ ArdourCanvas::SimpleRect * rec_rect = new Gnome::Canvas::SimpleRect (*_canvas_group);
rec_rect->property_x1() = xstart;
rec_rect->property_y1() = 1.0;
rec_rect->property_x2() = xend;
using namespace PBD;
using namespace Editing;
-StreamView::StreamView (RouteTimeAxisView& tv, ArdourCanvas::Group* group)
+StreamView::StreamView (RouteTimeAxisView& tv, ArdourCanvas::Group* background_group, ArdourCanvas::Group* canvas_group)
: _trackview (tv)
- , owns_canvas_group(group == 0)
- , _background_group (new ArdourCanvas::Group (*_trackview.canvas_background()))
- , canvas_group(group ? group : new ArdourCanvas::Group(*_trackview.canvas_display()))
+ , owns_background_group (background_group == 0)
+ , owns_canvas_group (canvas_group == 0)
+ , _background_group (background_group ? background_group : new ArdourCanvas::Group (*_trackview.canvas_background()))
+ , _canvas_group (canvas_group ? canvas_group : new ArdourCanvas::Group(*_trackview.canvas_display()))
, _samples_per_unit (_trackview.editor().get_current_zoom ())
, rec_updating(false)
, rec_active(false)
{
/* set_position() will position the group */
- canvas_rect = new ArdourCanvas::SimpleRect (*canvas_group);
+ canvas_rect = new ArdourCanvas::SimpleRect (*_background_group);
canvas_rect->property_x1() = 0.0;
canvas_rect->property_y1() = 0.0;
canvas_rect->property_x2() = _trackview.editor().get_physical_screen_width ();
delete canvas_rect;
+ if (owns_background_group) {
+ delete _background_group;
+ }
+
if (owns_canvas_group) {
- delete canvas_group;
+ delete _canvas_group;
}
}
int
StreamView::set_position (gdouble x, gdouble y)
{
- canvas_group->property_x() = x;
- canvas_group->property_y() = y;
+ _canvas_group->property_x() = x;
+ _canvas_group->property_y() = y;
return 0;
}
LayerDisplay layer_display () const { return _layer_display; }
ArdourCanvas::Group* background_group() { return _background_group; }
- ArdourCanvas::Group* canvas_item() { return canvas_group; }
+ ArdourCanvas::Group* canvas_item() { return _canvas_group; }
enum ColorTarget {
RegionColor,
sigc::signal<void> HeightChanged;
protected:
- StreamView (RouteTimeAxisView&, ArdourCanvas::Group* group = NULL);
+ StreamView (RouteTimeAxisView&, ArdourCanvas::Group* background_group = 0, ArdourCanvas::Group* canvas_group = 0);
void transport_changed();
void transport_looped();
virtual void color_handler () = 0;
RouteTimeAxisView& _trackview;
+ bool owns_background_group;
bool owns_canvas_group;
ArdourCanvas::Group* _background_group;
- ArdourCanvas::Group* canvas_group;
+ ArdourCanvas::Group* _canvas_group;
ArdourCanvas::SimpleRect* canvas_rect; /* frame around the whole thing */
typedef std::list<RegionView* > RegionViewList;