From f85101ff72bf93ab3546ea0c4ec8e3f1242f256f Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 27 Apr 2013 19:51:08 +0100 Subject: Add default still length option. Split config dialog into tabs. --- src/lib/config.cc | 9 +++++++-- src/lib/config.h | 11 ++++++++++- src/lib/imagemagick_content.cc | 3 ++- 3 files changed, 19 insertions(+), 4 deletions(-) (limited to 'src/lib') diff --git a/src/lib/config.cc b/src/lib/config.cc index e6f657a39..4f90581f6 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -37,6 +37,7 @@ using std::string; using std::ofstream; using std::list; using boost::shared_ptr; +using boost::lexical_cast; using boost::optional; Config* Config::_instance = 0; @@ -48,6 +49,7 @@ Config::Config () , _reference_scaler (Scaler::from_id (N_("bicubic"))) , _tms_path (N_(".")) , _sound_processor (SoundProcessor::from_id (N_("dolby_cp750"))) + , _default_still_length (10) { _allowed_dcp_frame_rates.push_back (24); _allowed_dcp_frame_rates.push_back (25); @@ -94,6 +96,7 @@ Config::Config () _language = f.optional_string_child ("Language"); _default_dci_metadata = DCIMetadata (f.node_child ("DCIMetadata")); + _default_still_length = f.optional_number_child("DefaultStillLength").get_value_or (10); } void @@ -180,9 +183,9 @@ Config::write () const xmlpp::Document doc; xmlpp::Element* root = doc.create_root_node ("Config"); - root->add_child("NumLocalEncodingThreads")->add_child_text (boost::lexical_cast (_num_local_encoding_threads)); + root->add_child("NumLocalEncodingThreads")->add_child_text (lexical_cast (_num_local_encoding_threads)); root->add_child("DefaultDirectory")->add_child_text (_default_directory); - root->add_child("ServerPort")->add_child_text (boost::lexical_cast (_server_port)); + root->add_child("ServerPort")->add_child_text (lexical_cast (_server_port)); if (_reference_scaler) { root->add_child("ReferenceScaler")->add_child_text (_reference_scaler->id ()); } @@ -208,6 +211,8 @@ Config::write () const _default_dci_metadata.as_xml (root->add_child ("DCIMetadata")); + root->add_child("DefaultStillLength")->add_child_text (lexical_cast (_default_still_length)); + doc.write_to_file_formatted (file (false)); } diff --git a/src/lib/config.h b/src/lib/config.h index 57f4fb8a9..91926750b 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -107,6 +107,10 @@ public: return _language; } + int default_still_length () const { + return _default_still_length; + } + /** @param n New number of local encoding threads */ void set_num_local_encoding_threads (int n) { _num_local_encoding_threads = n; @@ -169,7 +173,11 @@ public: void unset_language () { _language = boost::none; } - + + void set_default_still_length (int s) { + _default_still_length = s; + } + void write () const; static Config* instance (); @@ -207,6 +215,7 @@ private: /** Default DCI metadata for newly-created Films */ DCIMetadata _default_dci_metadata; boost::optional _language; + int _default_still_length; /** Singleton instance, or 0 */ static Config* _instance; diff --git a/src/lib/imagemagick_content.cc b/src/lib/imagemagick_content.cc index 24f6d338d..9e5f00ba0 100644 --- a/src/lib/imagemagick_content.cc +++ b/src/lib/imagemagick_content.cc @@ -20,6 +20,7 @@ #include #include "imagemagick_content.h" #include "imagemagick_decoder.h" +#include "config.h" #include "compose.hpp" #include "i18n.h" @@ -73,7 +74,7 @@ ImageMagickContent::examine (shared_ptr film, shared_ptr job, bool qu { boost::mutex::scoped_lock lm (_mutex); /* Initial length */ - _video_length = 10 * 24; + _video_length = Config::instance()->default_still_length() * 24; } take_from_video_decoder (decoder); -- cgit v1.2.3