summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2019-03-19 15:42:54 -0700
committerPaul Davis <paul@linuxaudiosystems.com>2019-03-19 15:43:06 -0700
commitfd3b8f79af8facfe11638af6876b38a2d05f74db (patch)
treefef4a619b3bc93fa5f77ecaa0808978d9d20cfc9 /libs
parent50604d83de43e71ccc3190400be2d8c89dbe6b4c (diff)
do not create a (throwaway) playlist during track creation
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/session_state.cc4
-rw-r--r--libs/ardour/track.cc8
2 files changed, 9 insertions, 3 deletions
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index 534bd4b9bb..6e791b4d8a 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -1850,9 +1850,9 @@ Session::XMLRouteFactory (const XMLNode& node, int version)
boost::shared_ptr<Track> track;
if (type == DataType::AUDIO) {
- track.reset (new AudioTrack (*this, X_("toBeResetFroXML")));
+ track.reset (new AudioTrack (*this, string())); // name will be reset from XML in ::set_state() below
} else {
- track.reset (new MidiTrack (*this, X_("toBeResetFroXML")));
+ track.reset (new MidiTrack (*this, string())); // name will be reset from XML in ::set_state() below
}
if (track->init()) {
diff --git a/libs/ardour/track.cc b/libs/ardour/track.cc
index d94ab81ac1..0cf2fc2010 100644
--- a/libs/ardour/track.cc
+++ b/libs/ardour/track.cc
@@ -103,7 +103,13 @@ Track::init ()
set_align_choice_from_io ();
- use_new_playlist (data_type());
+ if (!name().empty()) {
+ /* an empty name means that we are being constructed via
+ serialized state (XML). Don't create a playlist, because one
+ will be created or discovered during ::set_state().
+ */
+ use_new_playlist (data_type());
+ }
boost::shared_ptr<Route> rp (boost::dynamic_pointer_cast<Route> (shared_from_this()));
boost::shared_ptr<Track> rt = boost::dynamic_pointer_cast<Track> (rp);