X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fdkdm_wrapper.cc;h=0dd37b464c6db6453a1bfc2d56459b48321dca9a;hb=1bfc60e40f533c6d931a915deabd97899719eb4b;hp=809739e06fd471d14a564fbc1de468d6a1f93f59;hpb=ba049fdab4a47023d6d5ee8b5ff9bbb710afbabb;p=dcpomatic.git diff --git a/src/lib/dkdm_wrapper.cc b/src/lib/dkdm_wrapper.cc index 809739e06..0dd37b464 100644 --- a/src/lib/dkdm_wrapper.cc +++ b/src/lib/dkdm_wrapper.cc @@ -34,6 +34,10 @@ 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 } else if (node->name() == "DKDMGroup") { shared_ptr group (new DKDMGroup (node->string_attribute ("Name"))); BOOST_FOREACH (cxml::ConstNodePtr i, node->node_children()) { @@ -60,6 +64,20 @@ 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 { @@ -71,10 +89,18 @@ DKDMGroup::as_xml (xmlpp::Element* node) const } void -DKDMGroup::add (shared_ptr child) +DKDMGroup::add (shared_ptr child, shared_ptr previous) { DCPOMATIC_ASSERT (child); - _children.push_back (child); + if (previous) { + list >::iterator 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 ())); }