Don't add DKDMs twice (#2545).
[dcpomatic.git] / src / lib / dkdm_wrapper.cc
index 532bbb314f9a4ba9aa5c089097b8cc6bceafcf91..f5eb435f6d0fc06989478a70a21f306b2bb1dd11 100644 (file)
@@ -111,3 +111,23 @@ DKDMGroup::remove (shared_ptr<DKDMBase> child)
                }
        }
 }
+
+
+bool
+DKDMGroup::contains(string dkdm_id) const
+{
+       for (auto child: _children) {
+               if (auto child_group = dynamic_pointer_cast<DKDMGroup>(child)) {
+                       if (child_group->contains(dkdm_id)) {
+                               return true;
+                       }
+               } else if (auto child_dkdm = dynamic_pointer_cast<DKDM>(child)) {
+                       if (child_dkdm->dkdm().id() == dkdm_id) {
+                               return true;
+                       }
+               }
+       }
+
+       return false;
+}
+