summaryrefslogtreecommitdiff
path: root/gtk2_ardour/audio_streamview.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-02-16 05:13:05 +0000
committerDavid Robillard <d@drobilla.net>2009-02-16 05:13:05 +0000
commit458c588e2c7dfe7c0e62647fb5e0d0c06cdf8f04 (patch)
tree32ebd393dd6aae397a1e272ec51a6e2d548b704b /gtk2_ardour/audio_streamview.cc
parentfb254fb2fc89f89142a2c991d9b09364ca1dac02 (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.cc25
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