+ void set_notification (Notification n, bool v) {
+ maybe_set (_notification[n], v);
+ }
+
+ void set_barco_username (std::string u) {
+ maybe_set (_barco_username, u);
+ }
+
+ void unset_barco_username () {
+ maybe_set (_barco_username, boost::optional<std::string>());
+ }
+
+ void set_barco_password (std::string p) {
+ maybe_set (_barco_password, p);
+ }
+
+ void unset_barco_password () {
+ maybe_set (_barco_password, boost::optional<std::string>());
+ }
+
+ void set_christie_username (std::string u) {
+ maybe_set (_christie_username, u);
+ }
+
+ void unset_christie_username () {
+ maybe_set (_christie_username, boost::optional<std::string>());
+ }
+
+ void set_christie_password (std::string p) {
+ maybe_set (_christie_password, p);
+ }
+
+ void unset_christie_password () {
+ maybe_set (_christie_password, boost::optional<std::string>());
+ }
+
+ void set_gdc_username (std::string u) {
+ maybe_set (_gdc_username, u);
+ }
+
+ void unset_gdc_username () {
+ maybe_set (_gdc_username, boost::optional<std::string>());
+ }
+
+ void set_gdc_password (std::string p) {
+ maybe_set (_gdc_password, p);
+ }
+
+ void unset_gdc_password () {
+ maybe_set (_gdc_password, boost::optional<std::string>());
+ }
+
+ void set_player_mode (PlayerMode m) {
+ maybe_set (_player_mode, m);
+ }
+
+ void set_image_display (int n) {
+ maybe_set (_image_display, n);
+ }
+
+ void set_video_view_type (VideoViewType v) {
+ maybe_set (_video_view_type, v);
+ }
+
+ void set_respect_kdm_validity_periods (bool r) {
+ maybe_set (_respect_kdm_validity_periods, r);
+ }
+
+ void set_player_debug_log_file (boost::filesystem::path p) {
+ maybe_set (_player_debug_log_file, p, PLAYER_DEBUG_LOG);
+ }
+
+ void unset_player_debug_log_file () {
+ if (!_player_debug_log_file) {
+ return;
+ }
+ _player_debug_log_file = boost::none;
+ changed (PLAYER_DEBUG_LOG);
+ }
+
+ void set_player_content_directory (boost::filesystem::path p) {
+ maybe_set (_player_content_directory, p, PLAYER_CONTENT_DIRECTORY);
+ }
+
+ void unset_player_content_directory () {
+ if (!_player_content_directory) {
+ return;
+ }
+ _player_content_directory = boost::none;
+ changed (PLAYER_CONTENT_DIRECTORY);
+ }
+
+ void set_player_playlist_directory (boost::filesystem::path p) {
+ maybe_set (_player_playlist_directory, p, PLAYER_PLAYLIST_DIRECTORY);
+ }
+
+ void unset_player_playlist_directory () {
+ if (!_player_playlist_directory) {
+ return;
+ }
+ _player_playlist_directory = boost::none;
+ changed (PLAYER_PLAYLIST_DIRECTORY);
+ }
+
+ void set_player_kdm_directory (boost::filesystem::path p) {
+ maybe_set (_player_kdm_directory, p);
+ }
+
+ void unset_player_kdm_directory () {
+ if (!_player_kdm_directory) {
+ return;
+ }
+ _player_kdm_directory = boost::none;
+ changed ();
+ }
+
+ void set_audio_mapping (AudioMapping m);
+ void set_audio_mapping_to_default ();
+
+ void add_custom_language (dcp::LanguageTag tag);
+
+ void set_add_files_path (boost::filesystem::path p) {
+ _add_files_path = p;
+ 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 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;
+ }
+