#include "audio_mapping.h"
+#include "export_config.h"
+#include "rough_duration.h"
#include "state.h"
#include "types.h"
#include <dcp/name_format.h>
HISTORY,
SHOW_EXPERIMENTAL_AUDIO_PROCESSORS,
AUDIO_MAPPING,
+ AUTO_CROP_THRESHOLD,
OTHER
};
return _allow_any_container;
}
+ bool allow_96khz_audio () const {
+ return _allow_96khz_audio;
+ }
+
+ bool use_all_audio_channels () const {
+ return _use_all_audio_channels;
+ }
+
bool show_experimental_audio_processors () const {
return _show_experimental_audio_processors;
}
return _default_kdm_type;
}
+ RoughDuration default_kdm_duration () const {
+ return _default_kdm_duration;
+ }
+
+ double auto_crop_threshold () const {
+ return _auto_crop_threshold;
+ }
+
+ boost::optional<std::string> last_release_notes_version () const {
+ return _last_release_notes_version;
+ }
/* SET (mostly) */
maybe_set (_allow_any_container, a);
}
+ void set_allow_96hhz_audio (bool a) {
+ maybe_set (_allow_96khz_audio, a);
+ }
+
+ void set_use_all_audio_channels (bool a) {
+ maybe_set (_use_all_audio_channels, a);
+ }
+
void set_show_experimental_audio_processors (bool e) {
maybe_set (_show_experimental_audio_processors, e, SHOW_EXPERIMENTAL_AUDIO_PROCESSORS);
}
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 set_last_release_notes_version (std::string version) {
+ maybe_set (_last_release_notes_version, version);
+ }
+
+ void unset_last_release_notes_version() {
+ maybe_set(_last_release_notes_version, boost::optional<std::string>());
+ }
+
+ ExportConfig& export_config() {
+ return _export;
+ }
+
void changed (Property p = OTHER);
boost::signals2::signal<void (Property)> Changed;
/** Emitted if read() failed on an existing Config file. There is nothing
a listener can do about it: this is just for information.
*/
- static boost::signals2::signal<void ()> FailedToLoad;
+ enum class LoadFailure {
+ CONFIG,
+ CINEMAS,
+ DKDM_RECIPIENTS
+ };
+ static boost::signals2::signal<void (LoadFailure)> FailedToLoad;
/** Emitted if read() issued a warning which the user might want to know about */
static boost::signals2::signal<void (std::string)> Warning;
/** Emitted if there is a something wrong the contents of our config. Handler can call
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;
static boost::filesystem::path config_read_file ();
static boost::filesystem::path config_write_file ();
-private:
- Config ();
- void read ();
- void set_defaults ();
- void set_kdm_email_to_default ();
- void set_notification_email_to_default ();
- void set_cover_sheet_to_default ();
- void read_cinemas (cxml::Document const & f);
- void read_dkdm_recipients (cxml::Document const & f);
- std::shared_ptr<dcp::CertificateChain> create_certificate_chain ();
- boost::filesystem::path directory_or (boost::optional<boost::filesystem::path> dir, boost::filesystem::path a) const;
- void add_to_history_internal (std::vector<boost::filesystem::path>& h, boost::filesystem::path p);
- void clean_history_internal (std::vector<boost::filesystem::path>& h);
- void backup ();
-
template <class T>
void maybe_set (T& member, T new_value, Property prop = OTHER) {
if (member == new_value) {
changed (prop);
}
+private:
+ Config ();
+ void read () override;
+ void read_config();
+ void read_cinemas();
+ void read_dkdm_recipients();
+ void set_defaults ();
+ void set_kdm_email_to_default ();
+ void set_notification_email_to_default ();
+ void set_cover_sheet_to_default ();
+ void read_cinemas (cxml::Document const & f);
+ void read_dkdm_recipients (cxml::Document const & f);
+ std::shared_ptr<dcp::CertificateChain> create_certificate_chain ();
+ boost::filesystem::path directory_or (boost::optional<boost::filesystem::path> dir, boost::filesystem::path a) const;
+ void add_to_history_internal (std::vector<boost::filesystem::path>& h, boost::filesystem::path p);
+ void clean_history_internal (std::vector<boost::filesystem::path>& h);
+ void backup ();
+
/** number of threads which a master DoM should use for J2K encoding on the local machine */
int _master_encoding_threads;
/** number of threads which a server should use for J2K encoding on the local machine */
https://www.dcpomatic.com/forum/viewtopic.php?f=2&t=1119&p=4468
*/
bool _allow_any_container;
+ bool _allow_96khz_audio;
+ bool _use_all_audio_channels;
/** Offer the upmixers in the audio processor settings */
bool _show_experimental_audio_processors;
boost::optional<std::string> _language;
bool _write_kdms_to_disk;
bool _email_kdms;
dcp::Formulation _default_kdm_type;
+ RoughDuration _default_kdm_duration;
+ double _auto_crop_threshold;
+ boost::optional<std::string> _last_release_notes_version;
+
+ ExportConfig _export;
static int const _current_version;
static Config* _instance;
};
+
#endif