2 Copyright (C) 2018 Carl Hetherington <cth@carlh.net>
4 This file is part of DCP-o-matic.
6 DCP-o-matic is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 DCP-o-matic is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
22 #include "spl_entry.h"
25 #include <libxml++/libxml++.h>
26 #include <boost/foreach.hpp>
28 using boost::shared_ptr;
30 SPL::SPL (boost::filesystem::path file)
32 cxml::Document f ("DCPPlaylist");
35 name = f.string_attribute ("Name");
36 BOOST_FOREACH (cxml::ConstNodePtr i, f.node_children("DCP")) {
37 boost::filesystem::path dir(i->content());
40 BOOST_FOREACH (shared_ptr<dcp::CPL> j, dcp.cpls()) {
41 if (j->id() == i->string_attribute("CPL")) {
42 playlist.push_back (SPLEntry(j, dir));
49 SPL::as_xml (boost::filesystem::path file) const
52 xmlpp::Element* root = doc.create_root_node ("DCPPlaylist");
53 root->set_attribute ("Name", name);
55 BOOST_FOREACH (SPLEntry i, playlist) {
56 xmlpp::Element* d = root->add_child ("DCP");
57 d->set_attribute ("CPL", i.cpl->id());
58 d->add_child_text (i.directory.string());
61 doc.write_to_file_formatted(file.string());