summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-01-05 23:34:21 +0000
committerCarl Hetherington <cth@carlh.net>2013-01-05 23:34:21 +0000
commit49936cb957f0d57310f05a7b17c7ab52c95e94d4 (patch)
tree59c22abf44a5c180af4459b8513a8f6c11b418f0 /src
parent881c8455d01de5c785c01f7dc55fef0aede2f3b2 (diff)
Basic encryption UI.
Diffstat (limited to 'src')
-rw-r--r--src/lib/film.cc15
-rw-r--r--src/lib/film.h8
-rw-r--r--src/lib/make_dcp_job.cc6
-rw-r--r--src/lib/util.cc2
-rw-r--r--src/wx/film_editor.cc20
-rw-r--r--src/wx/film_editor.h2
6 files changed, 51 insertions, 2 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc
index 1abf8e91f..cae4f5f93 100644
--- a/src/lib/film.cc
+++ b/src/lib/film.cc
@@ -99,6 +99,7 @@ Film::Film (string d, bool must_exist)
, _with_subtitles (false)
, _subtitle_offset (0)
, _subtitle_scale (1)
+ , _encrypted (false)
, _frames_per_second (0)
, _dirty (false)
{
@@ -166,6 +167,7 @@ Film::Film (Film const & o)
, _with_subtitles (o._with_subtitles)
, _subtitle_offset (o._subtitle_offset)
, _subtitle_scale (o._subtitle_scale)
+ , _encrypted (o._encrypted)
, _audio_language (o._audio_language)
, _subtitle_language (o._subtitle_language)
, _territory (o._territory)
@@ -418,6 +420,7 @@ Film::write_metadata () const
f << "with_subtitles " << _with_subtitles << "\n";
f << "subtitle_offset " << _subtitle_offset << "\n";
f << "subtitle_scale " << _subtitle_scale << "\n";
+ f << "encrypted " << _encrypted << "\n";
f << "audio_language " << _audio_language << "\n";
f << "subtitle_language " << _subtitle_language << "\n";
f << "territory " << _territory << "\n";
@@ -543,6 +546,8 @@ Film::read_metadata ()
_subtitle_offset = atoi (v.c_str ());
} else if (k == "subtitle_scale") {
_subtitle_scale = atof (v.c_str ());
+ } else if (k == "encrypted") {
+ _encrypted = (v == "1");
} else if (k == "audio_language") {
_audio_language = v;
} else if (k == "subtitle_language") {
@@ -1189,6 +1194,16 @@ Film::set_subtitle_scale (float s)
}
void
+Film::set_encrypted (bool e)
+{
+ {
+ boost::mutex::scoped_lock lm (_state_mutex);
+ _encrypted = e;
+ }
+ signal_changed (ENCRYPTED);
+}
+
+void
Film::set_audio_language (string l)
{
{
diff --git a/src/lib/film.h b/src/lib/film.h
index b8a824233..eda2060b8 100644
--- a/src/lib/film.h
+++ b/src/lib/film.h
@@ -124,6 +124,7 @@ public:
WITH_SUBTITLES,
SUBTITLE_OFFSET,
SUBTITLE_SCALE,
+ ENCRYPTED,
DCI_METADATA,
SIZE,
LENGTH,
@@ -250,6 +251,11 @@ public:
return _subtitle_scale;
}
+ bool encrypted () const {
+ boost::mutex::scoped_lock lm (_state_mutex);
+ return _encrypted;
+ }
+
std::string audio_language () const {
boost::mutex::scoped_lock lm (_state_mutex);
return _audio_language;
@@ -351,6 +357,7 @@ public:
void set_with_subtitles (bool);
void set_subtitle_offset (int);
void set_subtitle_scale (float);
+ void set_encrypted (bool);
void set_audio_language (std::string);
void set_subtitle_language (std::string);
void set_territory (std::string);
@@ -444,6 +451,7 @@ private:
int _subtitle_offset;
/** scale factor to apply to subtitles */
float _subtitle_scale;
+ bool _encrypted;
/* DCI naming stuff */
std::string _audio_language;
diff --git a/src/lib/make_dcp_job.cc b/src/lib/make_dcp_job.cc
index 4605d1724..a8b80fd67 100644
--- a/src/lib/make_dcp_job.cc
+++ b/src/lib/make_dcp_job.cc
@@ -113,7 +113,8 @@ MakeDCPJob::run ()
dfr.frames_per_second,
frames,
_opt->out_size.width,
- _opt->out_size.height
+ _opt->out_size.height,
+ _film->encrypted ()
)
);
@@ -131,7 +132,8 @@ MakeDCPJob::run ()
&dcp.Progress,
dfr.frames_per_second,
frames,
- _film->audio_channels()
+ _film->audio_channels(),
+ _film->encrypted()
)
);
ascend ();
diff --git a/src/lib/util.cc b/src/lib/util.cc
index 45965385c..424c736c2 100644
--- a/src/lib/util.cc
+++ b/src/lib/util.cc
@@ -230,6 +230,8 @@ seconds (struct timeval t)
void
dvdomatic_setup ()
{
+ libdcp_setup ();
+
Format::setup_formats ();
DCPContentType::setup_dcp_content_types ();
Scaler::setup_scalers ();
diff --git a/src/wx/film_editor.cc b/src/wx/film_editor.cc
index 22fd1cc14..56bc60c78 100644
--- a/src/wx/film_editor.cc
+++ b/src/wx/film_editor.cc
@@ -149,6 +149,10 @@ FilmEditor::make_film_panel ()
_film_sizer->Add (s);
}
+ _encrypted = new wxCheckBox (_film_panel, wxID_ANY, wxT ("Encrypted"));
+ _film_sizer->Add (_encrypted, 1);
+ _film_sizer->AddSpacer (0);
+
_dcp_ab = new wxCheckBox (_film_panel, wxID_ANY, wxT ("A/B"));
video_control (_dcp_ab);
_film_sizer->Add (_dcp_ab, 1);
@@ -188,6 +192,7 @@ FilmEditor::connect_to_widgets ()
_scaler->Connect (wxID_ANY, wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler (FilmEditor::scaler_changed), 0, this);
_dcp_content_type->Connect (wxID_ANY, wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler (FilmEditor::dcp_content_type_changed), 0, this);
_dcp_ab->Connect (wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler (FilmEditor::dcp_ab_toggled), 0, this);
+ _encrypted->Connect (wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler (FilmEditor::encrypted_toggled), 0, this);
_still_duration->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::still_duration_changed), 0, this);
_dcp_trim_start->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::dcp_trim_start_changed), 0, this);
_dcp_trim_end->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::dcp_trim_end_changed), 0, this);
@@ -454,6 +459,16 @@ FilmEditor::dcp_ab_toggled (wxCommandEvent &)
_film->set_dcp_ab (_dcp_ab->GetValue ());
}
+void
+FilmEditor::encrypted_toggled (wxCommandEvent &)
+{
+ if (!_film) {
+ return;
+ }
+
+ _film->set_encrypted (_encrypted->GetValue ());
+}
+
/** Called when the name widget has been changed */
void
FilmEditor::name_changed (wxCommandEvent &)
@@ -620,6 +635,9 @@ FilmEditor::film_changed (Film::Property p)
case Film::SUBTITLE_SCALE:
checked_set (_subtitle_scale, _film->subtitle_scale() * 100);
break;
+ case Film::ENCRYPTED:
+ checked_set (_encrypted, _film->encrypted ());
+ break;
case Film::USE_DCI_NAME:
checked_set (_use_dci_name, _film->use_dci_name ());
_dcp_name->SetLabel (std_to_wx (_film->dcp_name ()));
@@ -727,6 +745,7 @@ FilmEditor::set_film (shared_ptr<Film> f)
film_changed (Film::WITH_SUBTITLES);
film_changed (Film::SUBTITLE_OFFSET);
film_changed (Film::SUBTITLE_SCALE);
+ film_changed (Film::ENCRYPTED);
film_changed (Film::DCI_METADATA);
film_changed (Film::SIZE);
film_changed (Film::LENGTH);
@@ -760,6 +779,7 @@ FilmEditor::set_things_sensitive (bool s)
_dcp_trim_start->Enable (s);
_dcp_trim_end->Enable (s);
_dcp_ab->Enable (s);
+ _encrypted->Enable (s);
_audio_gain->Enable (s);
_audio_gain_calculate_button->Enable (s);
_audio_delay->Enable (s);
diff --git a/src/wx/film_editor.h b/src/wx/film_editor.h
index 7e75b4bf0..c1284fe79 100644
--- a/src/wx/film_editor.h
+++ b/src/wx/film_editor.h
@@ -66,6 +66,7 @@ private:
void dcp_trim_start_changed (wxCommandEvent &);
void dcp_trim_end_changed (wxCommandEvent &);
void dcp_content_type_changed (wxCommandEvent &);
+ void encrypted_toggled (wxCommandEvent &);
void dcp_ab_toggled (wxCommandEvent &);
void scaler_changed (wxCommandEvent &);
void audio_gain_changed (wxCommandEvent &);
@@ -163,6 +164,7 @@ private:
wxSpinCtrl* _dcp_trim_start;
wxSpinCtrl* _dcp_trim_end;
+ wxCheckBox* _encrypted;
/** Selector to generate an A/B comparison DCP */
wxCheckBox* _dcp_ab;