diff options
| author | Carl Hetherington <cth@carlh.net> | 2024-03-15 00:41:20 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-05-11 21:00:37 +0200 |
| commit | d2c665cba983c625933817e0bf05e298f80f0119 (patch) | |
| tree | c631beb6a9f56b76df71285559a042809d47851e /src/lib/remembered_asset.h | |
| parent | 59195cd423442f1c2b6c1d97162c1f5ecfe1f609 (diff) | |
Stop using video directory and hard-linking (#2756).
Instead store details of a previously-created asset in the film's
metadata and then look there for potential video files to re-use.
Diffstat (limited to 'src/lib/remembered_asset.h')
| -rw-r--r-- | src/lib/remembered_asset.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/src/lib/remembered_asset.h b/src/lib/remembered_asset.h new file mode 100644 index 000000000..ec9344e24 --- /dev/null +++ b/src/lib/remembered_asset.h @@ -0,0 +1,79 @@ +/* + Copyright (C) 2024 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + + +#ifndef DCPOMATIC_REMEMBERED_ASSET_H +#define DCPOMATIC_REMEMBERED_ASSET_H + + +#include "dcpomatic_time.h" +#include <libcxml/cxml.h> +#include <dcp/warnings.h> +LIBDCP_DISABLE_WARNINGS +#include <libxml++/libxml++.h> +LIBDCP_ENABLE_WARNINGS +#include <boost/filesystem.hpp> + + +class RememberedAsset +{ +public: + explicit RememberedAsset(cxml::ConstNodePtr node); + + RememberedAsset(boost::filesystem::path filename, dcpomatic::DCPTimePeriod period, std::string identifier) + : _filename(filename) + , _period(period) + , _identifier(std::move(identifier)) + {} + + void as_xml(xmlpp::Element* parent) const; + + boost::filesystem::path filename() const { + return _filename; + } + + dcpomatic::DCPTimePeriod period() const { + return _period; + } + + std::string identifier() const { + return _identifier; + } + +private: + boost::filesystem::path _filename; + dcpomatic::DCPTimePeriod _period; + std::string _identifier; +}; + + +boost::optional<boost::filesystem::path> find_asset( + std::vector<RememberedAsset> const& assets, boost::filesystem::path directory, dcpomatic::DCPTimePeriod period, std::string identifier + ); + + +void clean_up_asset_directory(boost::filesystem::path directory); + + +void preserve_assets(boost::filesystem::path search, boost::filesystem::path assets_path); + + +#endif + |
