/*
- Copyright (C) 2012-2021 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2022 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
* @brief Class holding configuration.
*/
+
#ifndef DCPOMATIC_CONFIG_H
#define DCPOMATIC_CONFIG_H
-#include "types.h"
-#include "state.h"
+
#include "audio_mapping.h"
+#include "rough_duration.h"
+#include "state.h"
+#include "types.h"
#include <dcp/name_format.h>
#include <dcp/certificate_chain.h>
#include <dcp/encrypted_kdm.h>
#include <boost/filesystem.hpp>
#include <vector>
+
+class Cinema;
class CinemaSoundProcessor;
class DCPContentType;
-class Ratio;
-class Cinema;
-class Film;
class DKDMGroup;
class DKDMRecipient;
+class Film;
+class Ratio;
+
+
+extern void save_all_config_as_zip (boost::filesystem::path zip_file);
+
/** @class Config
* @brief A singleton class holding configuration.
HISTORY,
SHOW_EXPERIMENTAL_AUDIO_PROCESSORS,
AUDIO_MAPPING,
+ AUTO_CROP_THRESHOLD,
OTHER
};
return _tms_password;
}
- std::list<std::shared_ptr<Cinema> > cinemas () const {
+ std::list<std::shared_ptr<Cinema>> cinemas () const {
return _cinemas;
}
- std::list<std::shared_ptr<DKDMRecipient> > dkdm_recipients () const {
+ std::list<std::shared_ptr<DKDMRecipient>> dkdm_recipients () const {
return _dkdm_recipients;
}
return _allow_any_container;
}
+ bool allow_96khz_audio () const {
+ return _allow_96khz_audio;
+ }
+
bool show_experimental_audio_processors () const {
return _show_experimental_audio_processors;
}
return _add_files_path;
}
+ bool use_isdcf_name_by_default () const {
+ return _use_isdcf_name_by_default;
+ }
+
+ bool write_kdms_to_disk () const {
+ return _write_kdms_to_disk;
+ }
+
+ bool email_kdms () const {
+ return _email_kdms;
+ }
+
+ dcp::Formulation default_kdm_type () const {
+ return _default_kdm_type;
+ }
+
+ RoughDuration default_kdm_duration () const {
+ return _default_kdm_duration;
+ }
+
+ double auto_crop_threshold () const {
+ return _auto_crop_threshold;
+ }
+
/* SET (mostly) */
void set_master_encoding_threads (int n) {
maybe_set (_allow_any_container, a);
}
+ void set_allow_96hhz_audio (bool a) {
+ maybe_set (_allow_96khz_audio, a);
+ }
+
void set_show_experimental_audio_processors (bool e) {
maybe_set (_show_experimental_audio_processors, e, SHOW_EXPERIMENTAL_AUDIO_PROCESSORS);
}
changed ();
}
+ void set_use_isdcf_name_by_default (bool use) {
+ maybe_set (_use_isdcf_name_by_default, use);
+ }
+
+ void set_write_kdms_to_disk (bool write) {
+ maybe_set (_write_kdms_to_disk, write);
+ }
+
+ void set_email_kdms (bool email) {
+ maybe_set (_email_kdms, email);
+ }
+
+ void set_default_kdm_type (dcp::Formulation type) {
+ maybe_set (_default_kdm_type, type);
+ }
+
+ void set_default_kdm_duration (RoughDuration duration) {
+ maybe_set (_default_kdm_duration, duration);
+ }
+
+ void set_auto_crop_threshold (double threshold) {
+ maybe_set (_auto_crop_threshold, threshold, AUTO_CROP_THRESHOLD);
+ }
+
void changed (Property p = OTHER);
boost::signals2::signal<void (Property)> Changed;
/** Emitted if read() failed on an existing Config file. There is nothing
static boost::signals2::signal<bool (BadReason)> Bad;
- void write () const;
+ void write () const override;
void write_config () const;
void write_cinemas () const;
void write_dkdm_recipients () const;
private:
Config ();
- void read ();
+ void read () override;
void set_defaults ();
void set_kdm_email_to_default ();
void set_notification_email_to_default ();
https://www.dcpomatic.com/forum/viewtopic.php?f=2&t=1119&p=4468
*/
bool _allow_any_container;
+ bool _allow_96khz_audio;
/** Offer the upmixers in the audio processor settings */
bool _show_experimental_audio_processors;
boost::optional<std::string> _language;
*/
boost::optional<boost::filesystem::path> _default_kdm_directory;
bool _upload_after_make_dcp;
- std::list<std::shared_ptr<Cinema> > _cinemas;
- std::list<std::shared_ptr<DKDMRecipient> > _dkdm_recipients;
+ std::list<std::shared_ptr<Cinema>> _cinemas;
+ std::list<std::shared_ptr<DKDMRecipient>> _dkdm_recipients;
std::string _mail_server;
int _mail_port;
EmailProtocol _mail_protocol;
boost::optional<AudioMapping> _audio_mapping;
std::vector<dcp::LanguageTag> _custom_languages;
boost::optional<boost::filesystem::path> _add_files_path;
+ bool _use_isdcf_name_by_default;
+ bool _write_kdms_to_disk;
+ bool _email_kdms;
+ dcp::Formulation _default_kdm_type;
+ RoughDuration _default_kdm_duration;
+ double _auto_crop_threshold;
static int const _current_version;