#include "export_config.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>
SHOW_EXPERIMENTAL_AUDIO_PROCESSORS,
AUDIO_MAPPING,
AUTO_CROP_THRESHOLD,
+ ALLOW_SMPTE_BV20,
+ ISDCF_NAME_PART_LENGTH,
OTHER
};
return _default_still_length;
}
- Ratio const * default_container () const {
- return _default_container;
- }
-
DCPContentType const * default_dcp_content_type () const {
return _default_dcp_content_type;
}
return _default_interop;
}
+ boost::optional<dcp::LanguageTag> default_audio_language() const {
+ return _default_audio_language;
+ }
+
+ boost::optional<dcp::LanguageTag::RegionSubtag> default_territory() const {
+ return _default_territory;
+ }
+
std::map<std::string, std::string> default_metadata () const {
return _default_metadata;
}
NAG_32_ON_64,
NAG_TOO_MANY_DROPPED_FRAMES,
NAG_BAD_SIGNER_CHAIN_VALIDITY,
+ NAG_BAD_SIGNER_DN_QUALIFIER,
NAG_COUNT
};
return _custom_languages;
}
- boost::optional<boost::filesystem::path> add_files_path () const {
- return _add_files_path;
- }
+ boost::optional<boost::filesystem::path> initial_path(std::string id) const;
bool use_isdcf_name_by_default () const {
return _use_isdcf_name_by_default;
return _main_content_divider_sash_position;
}
+ enum class DefaultAddFileLocation {
+ SAME_AS_LAST_TIME,
+ SAME_AS_PROJECT
+ };
+
+ DefaultAddFileLocation default_add_file_location() const {
+ return _default_add_file_location;
+ }
+
+ bool allow_smpte_bv20() const {
+ return _allow_smpte_bv20;
+ }
+
+ int isdcf_name_part_length() const {
+ return _isdcf_name_part_length;
+ }
+
/* SET (mostly) */
void set_master_encoding_threads (int n) {
maybe_set (_default_still_length, s);
}
- void set_default_container (Ratio const * c) {
- maybe_set (_default_container, c);
- }
-
void set_default_dcp_content_type (DCPContentType const * t) {
maybe_set (_default_dcp_content_type, t);
}
maybe_set (_default_interop, i);
}
+ void set_default_audio_language(dcp::LanguageTag tag) {
+ maybe_set(_default_audio_language, tag);
+ }
+
+ void unset_default_audio_language() {
+ maybe_set(_default_audio_language, boost::optional<dcp::LanguageTag>());
+ }
+
+ void set_default_territory(dcp::LanguageTag::RegionSubtag tag) {
+ maybe_set(_default_territory, tag);
+ }
+
+ void unset_default_territory() {
+ maybe_set(_default_territory, boost::optional<dcp::LanguageTag::RegionSubtag>());
+ }
+
void set_default_metadata (std::map<std::string, std::string> const& metadata) {
maybe_set (_default_metadata, metadata);
}
void add_custom_language (dcp::LanguageTag tag);
- void set_add_files_path (boost::filesystem::path p) {
- _add_files_path = p;
- changed ();
- }
+ void set_initial_path(std::string id, boost::filesystem::path path);
void set_use_isdcf_name_by_default (bool use) {
maybe_set (_use_isdcf_name_by_default, use);
maybe_set(_main_content_divider_sash_position, position);
}
+ void set_default_add_file_location(DefaultAddFileLocation location) {
+ maybe_set(_default_add_file_location, location);
+ }
+
+ void set_allow_smpte_bv20(bool allow) {
+ maybe_set(_allow_smpte_bv20, allow, ALLOW_SMPTE_BV20);
+ }
+
+ void set_isdcf_name_part_length(int length) {
+ maybe_set(_isdcf_name_part_length, length, ISDCF_NAME_PART_LENGTH);
+ }
+
void changed (Property p = OTHER);
boost::signals2::signal<void (Property)> Changed;
/** Emitted if read() failed on an existing Config file. There is nothing
BAD_SIGNER_INCONSISTENT, ///< signer chain is somehow inconsistent
BAD_DECRYPTION_INCONSISTENT, ///< KDM decryption chain is somehow inconsistent
BAD_SIGNER_VALIDITY_TOO_LONG, ///< signer certificate validity periods are >10 years
+ BAD_SIGNER_DN_QUALIFIER, ///< some signer certificate has a bad dnQualifier (DoM #2716).
};
static boost::signals2::signal<bool (BadReason)> Bad;
boost::optional<std::string> _language;
/** Default length of still image content (seconds) */
int _default_still_length;
- Ratio const * _default_container;
DCPContentType const * _default_dcp_content_type;
int _default_dcp_audio_channels;
std::string _dcp_issuer;
int _default_j2k_bandwidth;
int _default_audio_delay;
bool _default_interop;
+ boost::optional<dcp::LanguageTag> _default_audio_language;
+ boost::optional<dcp::LanguageTag::RegionSubtag> _default_territory;
std::map<std::string, std::string> _default_metadata;
/** Default directory to offer to write KDMs to; if it's not set,
the home directory will be offered.
boost::optional<boost::filesystem::path> _player_kdm_directory;
boost::optional<AudioMapping> _audio_mapping;
std::vector<dcp::LanguageTag> _custom_languages;
- boost::optional<boost::filesystem::path> _add_files_path;
+ std::map<std::string, boost::optional<boost::filesystem::path>> _initial_paths;
bool _use_isdcf_name_by_default;
bool _write_kdms_to_disk;
bool _email_kdms;
boost::optional<std::string> _last_release_notes_version;
boost::optional<int> _main_divider_sash_position;
boost::optional<int> _main_content_divider_sash_position;
+ DefaultAddFileLocation _default_add_file_location;
+ bool _allow_smpte_bv20;
+ int _isdcf_name_part_length;
ExportConfig _export;