From f6d2229c47d219496b69eba58d3c74c492f77116 Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Sat, 12 Sep 2020 08:54:14 -0500 Subject: [PATCH] Playlist UI tweaks: Update PlaylistSelector (libardour part) * Add an option to use a playlist without stealing its ownership. (libardour) * Tracks emit PlaylistAdded when a new playlist is created either by copying or by creating a new empty pl --- libs/ardour/ardour/track.h | 3 ++- libs/ardour/track.cc | 14 ++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/libs/ardour/ardour/track.h b/libs/ardour/ardour/track.h index b5d259ac19..1985413b76 100644 --- a/libs/ardour/ardour/track.h +++ b/libs/ardour/ardour/track.h @@ -166,7 +166,7 @@ public: void set_align_style (AlignStyle, bool force=false); void set_align_choice (AlignChoice, bool force=false); void playlist_modified (); - int use_playlist (DataType, boost::shared_ptr); + int use_playlist (DataType, boost::shared_ptr, bool set_orig = true); int find_and_use_playlist (DataType, PBD::ID const &); int use_copy_playlist (); int use_new_playlist (DataType); @@ -178,6 +178,7 @@ public: PBD::Signal0 FreezeChange; PBD::Signal0 PlaylistChanged; + PBD::Signal0 PlaylistAdded; PBD::Signal0 SpeedChanged; PBD::Signal0 AlignmentStyleChanged; PBD::Signal0 ChanCountChanged; diff --git a/libs/ardour/track.cc b/libs/ardour/track.cc index 181f8b6eba..41a905fd2a 100644 --- a/libs/ardour/track.cc +++ b/libs/ardour/track.cc @@ -660,13 +660,15 @@ Track::find_and_use_playlist (DataType dt, PBD::ID const & id) } int -Track::use_playlist (DataType dt, boost::shared_ptr p) +Track::use_playlist (DataType dt, boost::shared_ptr p, bool set_orig) { int ret; if ((ret = _disk_reader->use_playlist (dt, p)) == 0) { if ((ret = _disk_writer->use_playlist (dt, p)) == 0) { - p->set_orig_track_id (id()); + if (set_orig) { + p->set_orig_track_id (id()); + } } } @@ -716,7 +718,9 @@ Track::use_copy_playlist () playlist->reset_shares(); - return use_playlist (data_type(), playlist); + int rv = use_playlist (data_type(), playlist); + PlaylistAdded (); /* EMIT SIGNAL */ + return rv; } int @@ -737,7 +741,9 @@ Track::use_new_playlist (DataType dt) return -1; } - return use_playlist (dt, playlist); + int rv = use_playlist (dt, playlist); + PlaylistAdded (); /* EMIT SIGNAL */ + return rv; } void