don't abort when loading legacy xfades if the constituent regions cannot be found
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 30 May 2012 16:16:27 +0000 (16:16 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 30 May 2012 16:16:27 +0000 (16:16 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@12495 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/audio_playlist.cc

index 0db5d174c96a87261c32051d915832fee69a5ba3..b157d68545eecac3cbdceb406607b9876bf2f97b 100644 (file)
@@ -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);