summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-09-14 20:35:36 +0100
committerCarl Hetherington <cth@carlh.net>2018-09-14 20:35:36 +0100
commit53c7f717da44c6ff681bde8946875e4f39764b25 (patch)
treeba5a2976b36ff9d7d24bf82cf556afac731d2257 /src/lib
parent8e4486a37ae3ddc1f46e07c9113fed6ad042e3a3 (diff)
Allow configurable start mode for player.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/config.cc21
-rw-r--r--src/lib/config.h15
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;