diff options
author | Carl Hetherington <carl@carlh.net> | 2009-07-09 13:39:45 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2009-07-09 13:39:45 +0000 |
commit | 4297071b3f7360b17d81ef9cf36b8d75d46d2818 (patch) | |
tree | 13cbb169cfcf79a2e845d8860f0f98e192f3a8d3 /gtk2_ardour/audio_time_axis.cc | |
parent | 0f8031da06e131595b3625169f9687c1a1ab2f3a (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.cc | 46 |
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); } |