Try to fix errors when starting DoM on a machine with no config.xml.
[dcpomatic.git] / src / lib / image_content.cc
index e26eed3d021f4bcaf2bc415d97e17ac56f980f9c..b27483978c157f8ca86b934c8b37d5e6e5bd9e58 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2013-2015 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2013-2016 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -26,7 +26,6 @@
 #include "job.h"
 #include "frame_rate_change.h"
 #include "exceptions.h"
-#include "safe_stringstream.h"
 #include "image_filename_sorter.h"
 #include <libcxml/cxml.h>
 #include <libxml++/libxml++.h>
@@ -37,6 +36,7 @@
 
 using std::string;
 using std::cout;
+using std::list;
 using boost::shared_ptr;
 
 ImageContent::ImageContent (shared_ptr<const Film> film, boost::filesystem::path p)
@@ -100,10 +100,10 @@ ImageContent::technical_summary () const
 }
 
 void
-ImageContent::as_xml (xmlpp::Node* node) const
+ImageContent::as_xml (xmlpp::Node* node, bool with_paths) const
 {
        node->add_child("Type")->add_child_text ("Image");
-       Content::as_xml (node);
+       Content::as_xml (node, with_paths);
 
        if (video) {
                video->as_xml (node);
@@ -135,11 +135,9 @@ ImageContent::full_length () const
 string
 ImageContent::identifier () const
 {
-       SafeStringStream s;
-       s << Content::identifier();
-       s << "_" << video->identifier ();
-       s << "_" << video->length();
-       return s.str ();
+       char buffer[256];
+       snprintf (buffer, sizeof(buffer), "%s_%s_%" PRId64, Content::identifier().c_str(), video->identifier().c_str(), video->length());
+       return buffer;
 }
 
 bool
@@ -169,3 +167,10 @@ ImageContent::set_default_colour_conversion ()
                video->set_colour_conversion (PresetColourConversion::from_id ("rec709").conversion);
        }
 }
+
+void
+ImageContent::add_properties (list<UserProperty>& p) const
+{
+       Content::add_properties (p);
+       video->add_properties (p);
+}