/*
- Copyright (C) 2019 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2019-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
-#include "types.h"
+
+#include "video_frame_type.h"
#include <dcp/types.h>
#include <boost/optional.hpp>
#include <boost/filesystem.hpp>
#include <vector>
+
class DCPContentType;
+class Film;
class Ratio;
+struct create_cli_test;
+
+
class CreateCLI
{
public:
struct Content {
boost::filesystem::path path;
VideoFrameType frame_type;
+ boost::optional<dcp::Channel> channel;
+ boost::optional<float> gain;
+ boost::optional<boost::filesystem::path> kdm;
+ boost::optional<std::string> cpl;
};
bool version;
- std::string name;
- boost::optional<std::string> template_name;
- bool encrypt;
- bool threed;
- DCPContentType const * dcp_content_type;
boost::optional<int> dcp_frame_rate;
- Ratio const * container_ratio;
- int still_length;
- dcp::Standard standard;
- bool no_use_isdcf_name;
- bool no_sign;
+ boost::optional<int> still_length;
boost::optional<boost::filesystem::path> config_dir;
boost::optional<boost::filesystem::path> output_dir;
boost::optional<std::string> error;
std::vector<Content> content;
- bool fourk;
- boost::optional<int> j2k_bandwidth;
+
+ std::shared_ptr<Film> make_film() const;
private:
+ friend struct ::create_cli_test;
+
+ boost::optional<std::string> _template_name;
+ std::string _name;
+ Ratio const* _container_ratio = nullptr;
+ bool _no_encrypt = false;
+ bool _encrypt = false;
+ bool _twod = false;
+ bool _threed = false;
+ DCPContentType const* _dcp_content_type = nullptr;
+ boost::optional<dcp::Standard> _standard;
+ bool _no_use_isdcf_name = false;
+ bool _twok = false;
+ bool _fourk = false;
+ boost::optional<int> _j2k_bandwidth;
+
static std::string _help;
};