Merge master; fix crash on new film.
[dcpomatic.git] / src / lib / dci_metadata.cc
index 2b4cc3ae710cf9314c7d691424edb06429383f82..f25b3ddb00508157065b682c20a626b3de965f4d 100644 (file)
 */
 
 #include <iostream>
+#include <libcxml/cxml.h>
 #include "dci_metadata.h"
 
-using namespace std;
+#include "i18n.h"
+
+using std::string;
+using boost::shared_ptr;
+
+DCIMetadata::DCIMetadata (shared_ptr<const cxml::Node> node)
+{
+       audio_language = node->string_child ("AudioLanguage");
+       subtitle_language = node->string_child ("SubtitleLanguage");
+       territory = node->string_child ("Territory");
+       rating = node->string_child ("Rating");
+       studio = node->string_child ("Studio");
+       facility = node->string_child ("Facility");
+       package_type = node->string_child ("PackageType");
+}
 
 void
-DCIMetadata::write (ostream& f) const
+DCIMetadata::as_xml (xmlpp::Node* root) const
 {
-       f << "audio_language " << audio_language << "\n";
-       f << "subtitle_language " << subtitle_language << "\n";
-       f << "territory " << territory << "\n";
-       f << "rating " << rating << "\n";
-       f << "studio " << studio << "\n";
-       f << "facility " << facility << "\n";
-       f << "package_type " << package_type << "\n";
+       root->add_child("AudioLanguage")->add_child_text (audio_language);
+       root->add_child("SubtitleLanguage")->add_child_text (subtitle_language);
+       root->add_child("Territory")->add_child_text (territory);
+       root->add_child("Rating")->add_child_text (rating);
+       root->add_child("Studio")->add_child_text (studio);
+       root->add_child("Facility")->add_child_text (facility);
+       root->add_child("PackageType")->add_child_text (package_type);
 }
 
 void
-DCIMetadata::read (string k, string v)
+DCIMetadata::read_old_metadata (string k, string v)
 {
-       if (k == "audio_language") {
+       if (k == N_("audio_language")) {
                audio_language = v;
-       } else if (k == "subtitle_language") {
+       } else if (k == N_("subtitle_language")) {
                subtitle_language = v;
-       } else if (k == "territory") {
+       } else if (k == N_("territory")) {
                territory = v;
-       } else if (k == "rating") {
+       } else if (k == N_("rating")) {
                rating = v;
-       } else if (k == "studio") {
+       } else if (k == N_("studio")) {
                studio = v;
-       } else if (k == "facility") {
+       } else if (k == N_("facility")) {
                facility = v;
-       } else if (k == "package_type") {
+       } else if (k == N_("package_type")) {
                package_type = v;
        }
 }