diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-09-14 20:35:36 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-09-14 20:35:36 +0100 |
| commit | 53c7f717da44c6ff681bde8946875e4f39764b25 (patch) | |
| tree | ba5a2976b36ff9d7d24bf82cf556afac731d2257 /src/lib | |
| parent | 8e4486a37ae3ddc1f46e07c9113fed6ad042e3a3 (diff) | |
Allow configurable start mode for player.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/config.cc | 21 | ||||
| -rw-r--r-- | src/lib/config.h | 15 |
2 files changed, 36 insertions, 0 deletions
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<string>(); _gdc_password = optional<string>(); _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<string> 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<void (Property)> Changed; /** Emitted if read() failed on an existing Config file. There is nothing @@ -1039,6 +1053,7 @@ private: boost::optional<std::string> _gdc_username; boost::optional<std::string> _gdc_password; Interface _interface_complexity; + PlayerMode _player_mode; static int const _current_version; |
