diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2019-03-19 15:42:54 -0700 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2019-03-19 15:43:06 -0700 |
commit | fd3b8f79af8facfe11638af6876b38a2d05f74db (patch) | |
tree | fef4a619b3bc93fa5f77ecaa0808978d9d20cfc9 /libs | |
parent | 50604d83de43e71ccc3190400be2d8c89dbe6b4c (diff) |
do not create a (throwaway) playlist during track creation
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/session_state.cc | 4 | ||||
-rw-r--r-- | libs/ardour/track.cc | 8 |
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); |