From 53c7f717da44c6ff681bde8946875e4f39764b25 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 14 Sep 2018 20:35:36 +0100 Subject: Allow configurable start mode for player. --- src/lib/config.cc | 21 +++++++++++++++++++++ src/lib/config.h | 15 +++++++++++++++ 2 files changed, 36 insertions(+) (limited to 'src/lib') diff --git a/src/lib/config.cc b/src/lib/config.cc index 0baaf487c..30271283b 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -163,6 +163,7 @@ Config::set_defaults () _gdc_username = optional(); _gdc_password = optional(); _interface_complexity = INTERFACE_SIMPLE; + _player_mode = PLAYER_MODE_WINDOW; _allowed_dcp_frame_rates.clear (); _allowed_dcp_frame_rates.push_back (24); @@ -481,6 +482,14 @@ try 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; + } /* Replace any cinemas from config.xml with those from the configured file */ if (boost::filesystem::exists (_cinemas_file)) { @@ -855,6 +864,18 @@ 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; + } + try { doc.write_to_file_formatted(config_file().string()); } catch (xmlpp::exception& e) { diff --git a/src/lib/config.h b/src/lib/config.h index c5ce59fbf..d2829af08 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -459,6 +459,16 @@ public: return _interface_complexity; } + enum PlayerMode { + PLAYER_MODE_WINDOW, + PLAYER_MODE_FULL, + PLAYER_MODE_DUAL + }; + + PlayerMode player_mode () const { + return _player_mode; + } + /* SET (mostly) */ void set_master_encoding_threads (int n) { @@ -857,6 +867,10 @@ public: maybe_set (_interface_complexity, i, INTERFACE_COMPLEXITY); } + void set_player_mode (PlayerMode m) { + maybe_set (_player_mode, m); + } + void changed (Property p = OTHER); boost::signals2::signal Changed; /** Emitted if read() failed on an existing Config file. There is nothing @@ -1039,6 +1053,7 @@ private: boost::optional _gdc_username; boost::optional _gdc_password; Interface _interface_complexity; + PlayerMode _player_mode; static int const _current_version; -- cgit v1.2.3