X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fdkdm_wrapper.cc;h=016c77c3f9ec4a7671c3f2e8906ea0f0fae55883;hb=cc411a5ab156565c54282c3e9e0ed044d279de86;hp=4698c159d26a97bd9dd85cac1edd153334eacc09;hpb=55c007ab910ee9586d6bd2faba165e42f6148622;p=dcpomatic.git diff --git a/src/lib/dkdm_wrapper.cc b/src/lib/dkdm_wrapper.cc index 4698c159d..016c77c3f 100644 --- a/src/lib/dkdm_wrapper.cc +++ b/src/lib/dkdm_wrapper.cc @@ -22,10 +22,10 @@ #include "compose.hpp" #include "dkdm_wrapper.h" #include "dcpomatic_assert.h" -#include "warnings.h" -DCPOMATIC_DISABLE_WARNINGS +#include +LIBDCP_DISABLE_WARNINGS #include -DCPOMATIC_ENABLE_WARNINGS +LIBDCP_ENABLE_WARNINGS using std::string; @@ -111,3 +111,35 @@ DKDMGroup::remove (shared_ptr child) } } } + + +bool +DKDMGroup::contains(string dkdm_id) const +{ + for (auto child: _children) { + if (auto child_group = dynamic_pointer_cast(child)) { + if (child_group->contains(dkdm_id)) { + return true; + } + } else if (auto child_dkdm = dynamic_pointer_cast(child)) { + if (child_dkdm->dkdm().id() == dkdm_id) { + return true; + } + } + } + + return false; +} + + +bool +DKDMGroup::contains_dkdm() const +{ + for (auto child: _children) { + if (child->contains_dkdm()) { + return true; + } + } + + return false; +}