summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-04-27 19:51:08 +0100
committerCarl Hetherington <cth@carlh.net>2013-04-27 19:51:08 +0100
commitf85101ff72bf93ab3546ea0c4ec8e3f1242f256f (patch)
tree8f6d81770fcb33981db2fb1d4db0ea93e7fe789c /src/lib
parente72546dc3846c9516563d972091c9cf31affd5f5 (diff)
Add default still length option. Split config dialog into tabs.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/config.cc9
-rw-r--r--src/lib/config.h11
-rw-r--r--src/lib/imagemagick_content.cc3
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);