summaryrefslogtreecommitdiff
path: root/gtk2_ardour/audio_time_axis.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-07-09 13:39:45 +0000
committerCarl Hetherington <carl@carlh.net>2009-07-09 13:39:45 +0000
commit4297071b3f7360b17d81ef9cf36b8d75d46d2818 (patch)
tree13cbb169cfcf79a2e845d8860f0f98e192f3a8d3 /gtk2_ardour/audio_time_axis.cc
parent0f8031da06e131595b3625169f9687c1a1ab2f3a (diff)
Use shared_ptr for the TimeAxisView hierarchy.
git-svn-id: svn://localhost/ardour2/branches/3.0@5339 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/audio_time_axis.cc')
-rw-r--r--gtk2_ardour/audio_time_axis.cc46
1 files changed, 30 insertions, 16 deletions
diff --git a/gtk2_ardour/audio_time_axis.cc b/gtk2_ardour/audio_time_axis.cc
index 50f0df74cc..5fd87a2d24 100644
--- a/gtk2_ardour/audio_time_axis.cc
+++ b/gtk2_ardour/audio_time_axis.cc
@@ -80,12 +80,26 @@ AudioTimeAxisView::AudioTimeAxisView (PublicEditor& ed, Session& sess, boost::sh
: AxisView(sess)
, RouteTimeAxisView(ed, sess, rt, canvas)
{
+
+}
+
+AudioTimeAxisViewPtr
+AudioTimeAxisView::create (PublicEditor& ed, Session& sess, boost::shared_ptr<Route> rt, Canvas& canvas)
+{
+ AudioTimeAxisViewPtr v (new AudioTimeAxisView (ed, sess, rt, canvas));
+ v->init (ed, sess, rt, canvas);
+ return v;
+}
+
+void
+AudioTimeAxisView::init (PublicEditor& ed, Session& sess, boost::shared_ptr<Route> rt, Canvas& canvas)
+{
// Make sure things are sane...
assert(!is_track() || is_audio_track());
subplugin_menu.set_name ("ArdourContextMenu");
- _view = new AudioStreamView (*this);
+ _view = new AudioStreamView (boost::dynamic_pointer_cast<AudioTimeAxisView> (shared_from_this ()));
ignore_toggle = false;
@@ -246,13 +260,13 @@ AudioTimeAxisView::create_automation_child (const Evoral::Parameter& param, bool
}
boost::shared_ptr<AutomationTimeAxisView>
- gain_track(new AutomationTimeAxisView (_session,
- _route, _route->amp(), c,
- _editor,
- *this,
- false,
- parent_canvas,
- _route->amp()->describe_parameter(param)));
+ gain_track = AutomationTimeAxisView::create (_session,
+ _route, _route->amp(), c,
+ _editor,
+ shared_from_this (),
+ false,
+ parent_canvas,
+ _route->amp()->describe_parameter(param));
add_automation_child(Evoral::Parameter(GainAutomation), gain_track, show);
@@ -297,14 +311,14 @@ AudioTimeAxisView::ensure_pan_views (bool show)
std::string const name = _route->panner()->describe_parameter (pan_control->parameter ());
- boost::shared_ptr<AutomationTimeAxisView> pan_track (
- new AutomationTimeAxisView (_session,
- _route, _route->panner(), pan_control,
- _editor,
- *this,
- false,
- parent_canvas,
- name));
+ boost::shared_ptr<AutomationTimeAxisView> pan_track =
+ AutomationTimeAxisView::create (_session,
+ _route, _route->panner(), pan_control,
+ _editor,
+ shared_from_this (),
+ false,
+ parent_canvas,
+ name);
add_automation_child (*p, pan_track, show);
}