X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fconfig.cc;h=b28f8b957960b3a5a885829a6e0a49e7cb588742;hb=18fbb7b578eb0626c269bbb90de205c2d8fc3326;hp=8c76671d4f4062702e1be17ff4524595e8d49919;hpb=40755a826d9f28be8ac69cfbab48a5ad1ad18961;p=dcpomatic.git diff --git a/src/lib/config.cc b/src/lib/config.cc index 8c76671d4..b28f8b957 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -163,6 +163,9 @@ Config::set_defaults () _gdc_username = optional(); _gdc_password = optional(); _interface_complexity = INTERFACE_SIMPLE; + _player_mode = PLAYER_MODE_WINDOW; + _respect_kdm_validity_periods = false; + _player_log_file = boost::none; _allowed_dcp_frame_rates.clear (); _allowed_dcp_frame_rates.push_back (24); @@ -478,9 +481,20 @@ try _gdc_password = f.optional_string_child("GDCPassword"); optional ic = f.optional_string_child("InterfaceComplexity"); - if (ic && *ic == "simple") { - _interface_complexity = INTERFACE_SIMPLE; + if (ic && *ic == "full") { + _interface_complexity = INTERFACE_FULL; } + optional pm = f.optional_string_child("PlayerMode"); + if (pm && *pm == "window") { + _player_mode = PLAYER_MODE_WINDOW; + } else if (pm && *pm == "full") { + _player_mode = PLAYER_MODE_FULL; + } else if (pm && *pm == "dual") { + _player_mode = PLAYER_MODE_DUAL; + } + + _respect_kdm_validity_periods = f.optional_bool_child("RespectKDMValidityPeriods").get_value_or(false); + _player_log_file = f.optional_string_child("PlayerLogFile"); /* Replace any cinemas from config.xml with those from the configured file */ if (boost::filesystem::exists (_cinemas_file)) { @@ -855,6 +869,23 @@ Config::write_config () const break; } + switch (_player_mode) { + case PLAYER_MODE_WINDOW: + root->add_child("PlayerMode")->add_child_text("window"); + break; + case PLAYER_MODE_FULL: + root->add_child("PlayerMode")->add_child_text("full"); + break; + case PLAYER_MODE_DUAL: + root->add_child("PlayerMode")->add_child_text("dual"); + break; + } + + root->add_child("RespectKDMValidityPeriods")->add_child_text(_respect_kdm_validity_periods ? "1" : "0"); + if (_player_log_file) { + root->add_child("PlayerLogFile")->add_child_text(_player_log_file->string()); + } + try { doc.write_to_file_formatted(config_file().string()); } catch (xmlpp::exception& e) {