summaryrefslogtreecommitdiff
path: root/libs/ardour/audio_playlist.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-05-30 16:16:27 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-05-30 16:16:27 +0000
commit71dd60c7365ef37e6ce516dce528fb2611fb80bc (patch)
treef90bef28def854cbe966de070f0f446afe8d65f7 /libs/ardour/audio_playlist.cc
parentddc513c38da165eab91a24eb1ccc73464d408393 (diff)
don't abort when loading legacy xfades if the constituent regions cannot be found
git-svn-id: svn://localhost/ardour2/branches/3.0@12495 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/audio_playlist.cc')
-rw-r--r--libs/ardour/audio_playlist.cc16
1 files changed, 12 insertions, 4 deletions
diff --git a/libs/ardour/audio_playlist.cc b/libs/ardour/audio_playlist.cc
index 0db5d174c9..b157d68545 100644
--- a/libs/ardour/audio_playlist.cc
+++ b/libs/ardour/audio_playlist.cc
@@ -675,17 +675,25 @@ AudioPlaylist::set_state (const XMLNode& node, int version)
p = (*i)->property (X_("in"));
assert (p);
- cerr << "Looking for in xfade region " << p->value() << endl;
boost::shared_ptr<Region> in = region_by_id (PBD::ID (p->value ()));
- assert (in);
+ if (!in) {
+ warning << string_compose (_("Legacy crossfade involved an incoming region not present in playlist \"%1\" - crossfade discarded"),
+ name())
+ << endmsg;
+ continue;
+ }
boost::shared_ptr<AudioRegion> in_a = boost::dynamic_pointer_cast<AudioRegion> (in);
assert (in_a);
p = (*i)->property (X_("out"));
assert (p);
- cerr << "Looking for out xfade region " << p->value() << endl;
boost::shared_ptr<Region> out = region_by_id (PBD::ID (p->value ()));
- assert (out);
+ if (!in) {
+ warning << string_compose (_("Legacy crossfade involved an outgoing region not present in playlist \"%1\" - crossfade discarded"),
+ name())
+ << endmsg;
+ continue;
+ }
boost::shared_ptr<AudioRegion> out_a = boost::dynamic_pointer_cast<AudioRegion> (out);
assert (out_a);