diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-02-16 11:24:33 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-02-16 11:24:33 +0000 |
| commit | 7feda7e97b67917d240585a09ed6c50d4605a83d (patch) | |
| tree | 9e96af8220a0c221c3da5e3b9a1f942bd89a7321 /src/lib | |
| parent | d4467a8a07fa3411ce2fabc80e533e322a4fb796 (diff) | |
Add option to auto-upload to the TMS (#794).
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/film.cc | 10 | ||||
| -rw-r--r-- | src/lib/film.h | 9 | ||||
| -rw-r--r-- | src/lib/transcode_job.cc | 7 |
3 files changed, 25 insertions, 1 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc index 9320cf5d2..f4d983260 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -132,6 +132,7 @@ Film::Film (boost::filesystem::path dir, bool log) , _audio_processor (0) , _reel_type (REELTYPE_SINGLE) , _reel_length (2000000000) + , _upload_after_make_dcp (false) , _state_version (current_state_version) , _dirty (false) { @@ -356,6 +357,7 @@ Film::metadata () const } root->add_child("ReelType")->add_child_text (raw_convert<string> (_reel_type)); root->add_child("ReelLength")->add_child_text (raw_convert<string> (_reel_length)); + root->add_child("UploadAfterMakeDCP")->add_child_text (_upload_after_make_dcp ? "1" : "0"); _playlist->as_xml (root->add_child ("Playlist")); return doc; @@ -441,6 +443,7 @@ Film::read_metadata () _reel_type = static_cast<ReelType> (f.optional_number_child<int>("ReelType").get_value_or (static_cast<int>(REELTYPE_SINGLE))); _reel_length = f.optional_number_child<int64_t>("ReelLength").get_value_or (2000000000); + _upload_after_make_dcp = f.optional_bool_child("UploadAfterMakeDCP").get_value_or (false); list<string> notes; /* This method is the only one that can return notes (so far) */ @@ -867,6 +870,13 @@ Film::set_reel_length (int64_t r) } void +Film::set_upload_after_make_dcp (bool u) +{ + _upload_after_make_dcp = u; + signal_changed (UPLOAD_AFTER_MAKE_DCP); +} + +void Film::signal_changed (Property p) { _dirty = true; diff --git a/src/lib/film.h b/src/lib/film.h index 2fb3e810b..a33c0238e 100644 --- a/src/lib/film.h +++ b/src/lib/film.h @@ -181,7 +181,8 @@ public: INTEROP, AUDIO_PROCESSOR, REEL_TYPE, - REEL_LENGTH + REEL_LENGTH, + UPLOAD_AFTER_MAKE_DCP }; @@ -265,6 +266,10 @@ public: return _reel_length; } + bool upload_after_make_dcp () const { + return _upload_after_make_dcp; + } + /* SET */ void set_directory (boost::filesystem::path); @@ -294,6 +299,7 @@ public: void set_audio_processor (AudioProcessor const * processor); void set_reel_type (ReelType); void set_reel_length (int64_t); + void set_upload_after_make_dcp (bool); /** Emitted when some property has of the Film has changed */ mutable boost::signals2::signal<void (Property)> Changed; @@ -358,6 +364,7 @@ private: ReelType _reel_type; /** Desired reel length in bytes, if _reel_type == REELTYPE_BY_LENGTH */ int64_t _reel_length; + bool _upload_after_make_dcp; int _state_version; diff --git a/src/lib/transcode_job.cc b/src/lib/transcode_job.cc index b442d8035..a879e8c77 100644 --- a/src/lib/transcode_job.cc +++ b/src/lib/transcode_job.cc @@ -22,6 +22,8 @@ */ #include "transcode_job.h" +#include "upload_job.h" +#include "job_manager.h" #include "film.h" #include "transcoder.h" #include "log.h" @@ -86,6 +88,11 @@ TranscodeJob::run () LOG_GENERAL (N_("Transcode job completed successfully: %1 fps"), fps); _transcoder.reset (); + if (_film->upload_after_make_dcp ()) { + shared_ptr<Job> job (new UploadJob (_film)); + JobManager::instance()->add (job); + } + } catch (...) { _transcoder.reset (); throw; |
