X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fdkdm_wrapper.cc;h=532bbb314f9a4ba9aa5c089097b8cc6bceafcf91;hb=ff639b3cf30afcc097bfd21d39c8d15f466cadd6;hp=0dd37b464c6db6453a1bfc2d56459b48321dca9a;hpb=6cde6bcc0b604c1a157a4ccbdce29e91f4d45a91;p=dcpomatic.git diff --git a/src/lib/dkdm_wrapper.cc b/src/lib/dkdm_wrapper.cc index 0dd37b464..532bbb314 100644 --- a/src/lib/dkdm_wrapper.cc +++ b/src/lib/dkdm_wrapper.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2017 Carl Hetherington + Copyright (C) 2017-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,102 +18,94 @@ */ + #include "compose.hpp" #include "dkdm_wrapper.h" #include "dcpomatic_assert.h" +#include +LIBDCP_DISABLE_WARNINGS #include -#include +LIBDCP_ENABLE_WARNINGS + using std::string; using std::list; -using boost::shared_ptr; -using boost::dynamic_pointer_cast; +using std::shared_ptr; +using std::make_shared; +using std::dynamic_pointer_cast; + shared_ptr DKDMBase::read (cxml::ConstNodePtr node) { if (node->name() == "DKDM") { - return shared_ptr (new DKDM (dcp::EncryptedKDM (node->content ()))); -#ifdef DCPOMATIC_VARIANT_SWAROOP - } else if (node->name() == "ECinemaDKDM") { - return shared_ptr (new ECinemaDKDM(EncryptedECinemaKDM(node->content()))); -#endif + return make_shared(dcp::EncryptedKDM(node->content())); } else if (node->name() == "DKDMGroup") { - shared_ptr group (new DKDMGroup (node->string_attribute ("Name"))); - BOOST_FOREACH (cxml::ConstNodePtr i, node->node_children()) { - shared_ptr c = read (i); - if (c) { + auto group = make_shared(node->string_attribute("Name")); + for (auto i: node->node_children()) { + if (auto c = read(i)) { group->add (c); } } return group; } - return shared_ptr (); + return {}; } + string DKDM::name () const { return String::compose ("%1 (%2)", _dkdm.content_title_text(), _dkdm.cpl_id()); } + void DKDM::as_xml (xmlpp::Element* node) const { node->add_child("DKDM")->add_child_text (_dkdm.as_xml ()); } -#ifdef DCPOMATIC_VARIANT_SWAROOP -string -ECinemaDKDM::name () const -{ - return String::compose ("%1 (%2)", _dkdm.name(), _dkdm.id()); -} - -void -ECinemaDKDM::as_xml (xmlpp::Element* node) const -{ - node->add_child("ECinemaDKDM")->add_child_text (_dkdm.as_xml()); -} -#endif void DKDMGroup::as_xml (xmlpp::Element* node) const { - xmlpp::Element* f = node->add_child("DKDMGroup"); + auto f = node->add_child("DKDMGroup"); f->set_attribute ("Name", _name); - BOOST_FOREACH (shared_ptr i, _children) { + for (auto i: _children) { i->as_xml (f); } } + void DKDMGroup::add (shared_ptr child, shared_ptr previous) { DCPOMATIC_ASSERT (child); if (previous) { - list >::iterator i = find (_children.begin(), _children.end(), previous); - if (i != _children.end ()) { + auto i = find (_children.begin(), _children.end(), previous); + if (i != _children.end()) { ++i; } _children.insert (i, child); } else { _children.push_back (child); } - child->set_parent (dynamic_pointer_cast (shared_from_this ())); + child->set_parent (dynamic_pointer_cast(shared_from_this())); } + void DKDMGroup::remove (shared_ptr child) { - for (list >::iterator i = _children.begin(); i != _children.end(); ++i) { + for (auto i = _children.begin(); i != _children.end(); ++i) { if (*i == child) { _children.erase (i); - child->set_parent (shared_ptr ()); + child->set_parent (shared_ptr()); return; } - shared_ptr g = dynamic_pointer_cast (*i); + auto g = dynamic_pointer_cast (*i); if (g) { g->remove (child); }