Give 'wrong target' KDM errors in a dialogue box rather than in the job manager ...
[dcpomatic.git] / src / lib / screen.cc
index c4bcb41c7d18a1a4aef1d98ed6032b1480910f5b..61a27f2bc46a2afe864e55acfb77f3fce7fc5af1 100644 (file)
 
 using std::string;
 using std::vector;
+using std::list;
 using boost::shared_ptr;
 using boost::optional;
 using namespace dcpomatic;
 
 Screen::Screen (cxml::ConstNodePtr node)
-       : name (node->string_child("Name"))
-       , notes (node->optional_string_child("Notes").get_value_or (""))
+       : KDMRecipient (node)
 {
-       if (node->optional_string_child ("Certificate")) {
-               recipient = dcp::Certificate (node->string_child ("Certificate"));
-       } else if (node->optional_string_child ("Recipient")) {
-               recipient = dcp::Certificate (node->string_child ("Recipient"));
-       }
-
        BOOST_FOREACH (cxml::ConstNodePtr i, node->node_children ("TrustedDevice")) {
                if (boost::algorithm::starts_with(i->content(), "-----BEGIN CERTIFICATE-----")) {
                        trusted_devices.push_back (TrustedDevice(dcp::Certificate(i->content())));
@@ -55,13 +49,7 @@ Screen::Screen (cxml::ConstNodePtr node)
 void
 Screen::as_xml (xmlpp::Element* parent) const
 {
-       parent->add_child("Name")->add_child_text (name);
-       if (recipient) {
-               parent->add_child("Recipient")->add_child_text (recipient->certificate (true));
-       }
-
-       parent->add_child("Notes")->add_child_text (notes);
-
+       KDMRecipient::as_xml (parent);
        BOOST_FOREACH (TrustedDevice i, trusted_devices) {
                parent->add_child("TrustedDevice")->add_child_text(i.as_string());
        }
@@ -119,6 +107,6 @@ kdm_for_screen (
        name_values['e'] = end.date() + " " + end.time_of_day(true, false);
        name_values['i'] = kdm.cpl_id();
 
-       return KDMWithMetadataPtr(new DCPKDMWithMetadata(name_values, cinema, kdm));
+       return KDMWithMetadataPtr(new DCPKDMWithMetadata(name_values, cinema.get(), cinema ? cinema->emails : list<string>(), kdm));
 }