diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-08-25 16:56:17 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-08-25 16:56:17 +0100 |
| commit | 7b2054e2a73844450b5b55c5788c02af671812ce (patch) | |
| tree | 5d5727a5bce89cdd32923c0c44841abd0585c8cb /src/lib | |
| parent | c497e601934e82425efef5dc981b12818a881990 (diff) | |
| parent | 7edf8e601ed2ede5b6758840fb9d8940393cf7e2 (diff) | |
Merge master.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/config.cc | 25 | ||||
| -rw-r--r-- | src/lib/config.h | 16 | ||||
| -rw-r--r-- | src/lib/util.h | 2 |
3 files changed, 40 insertions, 3 deletions
diff --git a/src/lib/config.cc b/src/lib/config.cc index d20536f14..7e3762587 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -42,10 +42,12 @@ #include "i18n.h" using std::vector; +using std::cout; using std::ifstream; using std::string; using std::list; using std::max; +using std::remove; using std::exception; using std::cerr; using boost::shared_ptr; @@ -215,6 +217,11 @@ Config::read () _log_types = f.optional_number_child<int> ("LogTypes").get_value_or (Log::TYPE_GENERAL | Log::TYPE_WARNING | Log::TYPE_ERROR); + list<cxml::NodePtr> his = f.node_children ("History"); + for (list<cxml::NodePtr>::const_iterator i = his.begin(); i != his.end(); ++i) { + _history.push_back ((*i)->content ()); + } + cxml::NodePtr signer = f.optional_node_child ("Signer"); dcp::CertificateChain signer_chain; if (signer) { @@ -371,6 +378,10 @@ Config::write () const root->add_child("DecryptionCertificate")->add_child_text (_decryption_certificate.certificate (true)); root->add_child("DecryptionPrivateKey")->add_child_text (_decryption_private_key); + for (vector<boost::filesystem::path>::const_iterator i = _history.begin(); i != _history.end(); ++i) { + root->add_child("History")->add_child_text (i->string ()); + } + doc.write_to_file_formatted (file(false).string ()); } @@ -416,3 +427,17 @@ Config::reset_kdm_email () "Best regards,\nDCP-o-matic" ); } + +void +Config::add_to_history (boost::filesystem::path p) +{ + /* Remove existing instances of this path in the history */ + _history.erase (remove (_history.begin(), _history.end(), p), _history.end ()); + + _history.insert (_history.begin (), p); + if (_history.size() > HISTORY_SIZE) { + _history.pop_back (); + } + + changed (); +} diff --git a/src/lib/config.h b/src/lib/config.h index 3cfaa1200..05bc7945f 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -221,7 +221,11 @@ public: int log_types () const { return _log_types; } - + + std::vector<boost::filesystem::path> history () const { + return _history; + } + /** @param n New number of local encoding threads */ void set_num_local_encoding_threads (int n) { _num_local_encoding_threads = n; @@ -414,6 +418,13 @@ public: _log_types = t; changed (); } + + void clear_history () { + _history.clear (); + changed (); + } + + void add_to_history (boost::filesystem::path p); void changed (); boost::signals2::signal<void ()> Changed; @@ -482,7 +493,8 @@ private: /** maximum allowed J2K bandwidth in bits per second */ int _maximum_j2k_bandwidth; int _log_types; - + std::vector<boost::filesystem::path> _history; + /** Singleton instance, or 0 */ static Config* _instance; }; diff --git a/src/lib/util.h b/src/lib/util.h index 1bbdfb2cf..724e8937c 100644 --- a/src/lib/util.h +++ b/src/lib/util.h @@ -44,8 +44,8 @@ extern "C" { /** The maximum number of audio channels that we can have in a DCP */ #define MAX_DCP_AUDIO_CHANNELS 12 - #define DCPOMATIC_HELLO "Boys, you gotta learn not to talk to nuns that way" +#define HISTORY_SIZE 10 class Job; struct AVSubtitle; |
