diff options
| author | Carl Hetherington <cth@carlh.net> | 2024-02-15 01:05:22 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-02-17 23:51:20 +0100 |
| commit | 9d843365fb77e00dd31c03d1e8ea49126ab550f2 (patch) | |
| tree | efcba16a094affdc01414ba0adb5358f3d40c5cc /src/lib | |
| parent | 2fd68d37f503776bbe919d6aa01bf9cf6ec6a6dd (diff) | |
Add option to load prefs from ZIP (#2771).
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/config.cc | 33 | ||||
| -rw-r--r-- | src/lib/config.h | 2 |
2 files changed, 35 insertions, 0 deletions
diff --git a/src/lib/config.cc b/src/lib/config.cc index f5ad60714..384db5cde 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -32,6 +32,7 @@ #include "filter.h" #include "log.h" #include "ratio.h" +#include "unzipper.h" #include "zipper.h" #include <dcp/certificate_chain.h> #include <dcp/name_format.h> @@ -1633,6 +1634,38 @@ save_all_config_as_zip (boost::filesystem::path zip_file) void +Config::load_from_zip(boost::filesystem::path zip_file) +{ + Unzipper unzipper(zip_file); + dcp::write_string_to_file(unzipper.get("config.xml"), config_write_file()); + + try { + dcp::write_string_to_file(unzipper.get("cinemas.xml"), cinemas_file()); + dcp::write_string_to_file(unzipper.get("dkdm_recipient.xml"), dkdm_recipients_file()); + } catch (std::runtime_error&) {} + + read(); + + changed(Property::USE_ANY_SERVERS); + changed(Property::SERVERS); + changed(Property::CINEMAS); + changed(Property::DKDM_RECIPIENTS); + changed(Property::SOUND); + changed(Property::SOUND_OUTPUT); + changed(Property::PLAYER_CONTENT_DIRECTORY); + changed(Property::PLAYER_PLAYLIST_DIRECTORY); + changed(Property::PLAYER_DEBUG_LOG); + changed(Property::HISTORY); + changed(Property::SHOW_EXPERIMENTAL_AUDIO_PROCESSORS); + changed(Property::AUDIO_MAPPING); + changed(Property::AUTO_CROP_THRESHOLD); + changed(Property::ALLOW_SMPTE_BV20); + changed(Property::ISDCF_NAME_PART_LENGTH); + changed(Property::OTHER); +} + + +void Config::set_initial_path(string id, boost::filesystem::path path) { auto iter = _initial_paths.find(id); diff --git a/src/lib/config.h b/src/lib/config.h index dce4aafef..f3d080b0b 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -79,6 +79,8 @@ public: boost::filesystem::path default_directory_or (boost::filesystem::path a) const; boost::filesystem::path default_kdm_directory_or (boost::filesystem::path a) const; + void load_from_zip(boost::filesystem::path zip_file); + enum Property { USE_ANY_SERVERS, SERVERS, |
