} else if (ext == ".srt" || ext == ".ssa" || ext == ".ass") {
single.reset (new TextSubtitleContent (film, path));
} else if (ext == ".xml") {
+ cxml::Document doc;
+ doc.read_file (path);
+ if (doc.root_name() == "DCinemaSecurityMessage") {
+ throw KDMAsContentError ();
+ }
single.reset (new DCPSubtitleContent (film, path));
} else if (ext == ".mxf" && dcp::SMPTESubtitleAsset::valid_mxf (path)) {
single.reset (new DCPSubtitleContent (film, path));
/* XXX: check for lots of files here and do something */
- BOOST_FOREACH (boost::filesystem::path i, paths) {
- BOOST_FOREACH (shared_ptr<Content> j, content_factory (_film, i)) {
- _film->examine_and_add_content (j);
+ try {
+ BOOST_FOREACH (boost::filesystem::path i, paths) {
+ BOOST_FOREACH (shared_ptr<Content> j, content_factory (_film, i)) {
+ _film->examine_and_add_content (j);
+ }
}
+ } catch (exception& e) {
+ error_dialog (_parent, e.what());
}
}