summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-02-16 11:24:33 +0000
committerCarl Hetherington <cth@carlh.net>2016-02-16 11:24:33 +0000
commit7feda7e97b67917d240585a09ed6c50d4605a83d (patch)
tree9e96af8220a0c221c3da5e3b9a1f942bd89a7321 /src/lib
parentd4467a8a07fa3411ce2fabc80e533e322a4fb796 (diff)
Add option to auto-upload to the TMS (#794).
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/film.cc10
-rw-r--r--src/lib/film.h9
-rw-r--r--src/lib/transcode_job.cc7
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;