diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-04-27 19:51:08 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-04-27 19:51:08 +0100 |
| commit | f85101ff72bf93ab3546ea0c4ec8e3f1242f256f (patch) | |
| tree | 8f6d81770fcb33981db2fb1d4db0ea93e7fe789c /src/lib | |
| parent | e72546dc3846c9516563d972091c9cf31affd5f5 (diff) | |
Add default still length option. Split config dialog into tabs.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/config.cc | 9 | ||||
| -rw-r--r-- | src/lib/config.h | 11 | ||||
| -rw-r--r-- | src/lib/imagemagick_content.cc | 3 |
3 files changed, 19 insertions, 4 deletions
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<int>("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<string> (_num_local_encoding_threads)); + root->add_child("NumLocalEncodingThreads")->add_child_text (lexical_cast<string> (_num_local_encoding_threads)); root->add_child("DefaultDirectory")->add_child_text (_default_directory); - root->add_child("ServerPort")->add_child_text (boost::lexical_cast<string> (_server_port)); + root->add_child("ServerPort")->add_child_text (lexical_cast<string> (_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<string> (_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<std::string> _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 <libcxml/cxml.h> #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> film, shared_ptr<Job> 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); |
