diff options
author | David Robillard <d@drobilla.net> | 2009-02-16 05:13:05 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-02-16 05:13:05 +0000 |
commit | 458c588e2c7dfe7c0e62647fb5e0d0c06cdf8f04 (patch) | |
tree | 32ebd393dd6aae397a1e272ec51a6e2d548b704b /gtk2_ardour/audio_streamview.cc | |
parent | fb254fb2fc89f89142a2c991d9b09364ca1dac02 (diff) |
Don't bind playlist_modified with a shared_ptr<Playlist> parameter.
Clean up.
git-svn-id: svn://localhost/ardour2/branches/3.0@4599 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/audio_streamview.cc')
-rw-r--r-- | gtk2_ardour/audio_streamview.cc | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/gtk2_ardour/audio_streamview.cc b/gtk2_ardour/audio_streamview.cc index 320bc1f195..d205e400d2 100644 --- a/gtk2_ardour/audio_streamview.cc +++ b/gtk2_ardour/audio_streamview.cc @@ -248,11 +248,9 @@ void AudioStreamView::playlist_modified_weak (boost::weak_ptr<Diskstream> ds) { boost::shared_ptr<Diskstream> sp (ds.lock()); - if (!sp) { - return; + if (sp) { + playlist_modified (sp); } - - playlist_modified (sp); } void @@ -271,15 +269,28 @@ AudioStreamView::playlist_modified (boost::shared_ptr<Diskstream> ds) } void +AudioStreamView::playlist_changed_weak (boost::weak_ptr<Diskstream> ds) +{ + boost::shared_ptr<Diskstream> sp (ds.lock()); + if (sp) { + playlist_changed (sp); + } +} + +void AudioStreamView::playlist_changed (boost::shared_ptr<Diskstream> ds) { - ENSURE_GUI_THREAD (bind (mem_fun (*this, &AudioStreamView::playlist_changed), ds)); + ENSURE_GUI_THREAD (bind ( + mem_fun (*this, &AudioStreamView::playlist_changed_weak), + boost::weak_ptr<Diskstream> (ds))); StreamView::playlist_changed(ds); boost::shared_ptr<AudioPlaylist> apl = boost::dynamic_pointer_cast<AudioPlaylist>(ds->playlist()); - if (apl) - playlist_connections.push_back (apl->NewCrossfade.connect (mem_fun (*this, &AudioStreamView::add_crossfade))); + if (apl) { + playlist_connections.push_back (apl->NewCrossfade.connect ( + mem_fun (*this, &AudioStreamView::add_crossfade))); + } } void |