From 6bfcb3374d8ad43f08c3923b484b92ad60691b79 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 18 Dec 2025 15:13:22 +0100 Subject: Add all_dkdms() method. --- src/lib/dkdm_wrapper.cc | 23 +++++++++++++++++++---- src/lib/dkdm_wrapper.h | 6 ++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/lib/dkdm_wrapper.cc b/src/lib/dkdm_wrapper.cc index f6646e4d2..c735c3b95 100644 --- a/src/lib/dkdm_wrapper.cc +++ b/src/lib/dkdm_wrapper.cc @@ -19,19 +19,20 @@ */ -#include "dkdm_wrapper.h" #include "dcpomatic_assert.h" +#include "dkdm_wrapper.h" #include LIBDCP_DISABLE_WARNINGS #include LIBDCP_ENABLE_WARNINGS -using std::string; +using std::dynamic_pointer_cast; using std::list; -using std::shared_ptr; using std::make_shared; -using std::dynamic_pointer_cast; +using std::shared_ptr; +using std::string; +using std::vector; shared_ptr @@ -146,3 +147,17 @@ DKDMGroup::contains_dkdm() const return false; } + + +vector +DKDMGroup::all_dkdms() const +{ + vector all; + for (auto child: _children) { + for (auto dkdm: child->all_dkdms()) { + all.push_back(dkdm); + } + } + return all; +} + diff --git a/src/lib/dkdm_wrapper.h b/src/lib/dkdm_wrapper.h index 7182e5e85..0bbd46407 100644 --- a/src/lib/dkdm_wrapper.h +++ b/src/lib/dkdm_wrapper.h @@ -40,6 +40,7 @@ public: virtual void as_xml (xmlpp::Element *) const = 0; /** @return true if this thing is, or contains, any actual DKDM */ virtual bool contains_dkdm() const = 0; + virtual std::vector all_dkdms() const = 0; static std::shared_ptr read (cxml::ConstNodePtr node); @@ -68,6 +69,9 @@ public: bool contains_dkdm() const override { return true; } + std::vector all_dkdms() const override { + return { _dkdm }; + } dcp::EncryptedKDM dkdm () const { return _dkdm; @@ -93,6 +97,8 @@ public: bool contains_dkdm() const override; + std::vector all_dkdms() const override; + std::list> children () const { return _children; } -- cgit v1.2.3