summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-04-15 18:46:34 +0100
committerCarl Hetherington <cth@carlh.net>2013-04-15 18:46:34 +0100
commit9c0a99398dac9cd46b7eb2ca50c0182987954f78 (patch)
treed00f712f50a35540014c85300abe477fc704a690 /src
parent09a0fa8b6b9af3a333ee1918ee711ccc0f75c781 (diff)
parent606b3f759238aa6c0d12de064b301bf36b428220 (diff)
Merge branch 'master' into debug-i18n
Diffstat (limited to 'src')
-rw-r--r--src/lib/film.cc58
-rw-r--r--src/lib/film.h21
-rw-r--r--src/lib/po/sv_SE.po8
-rw-r--r--src/lib/writer.cc18
-rw-r--r--src/tools/po/sv_SE.po4
-rw-r--r--src/wx/film_editor.cc93
-rw-r--r--src/wx/film_editor.h4
7 files changed, 142 insertions, 64 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc
index bd11c1eb5..a42b874e8 100644
--- a/src/lib/film.cc
+++ b/src/lib/film.cc
@@ -93,6 +93,7 @@ Film::Film (string d, bool must_exist)
, _scaler (Scaler::from_id ("bicubic"))
, _trim_start (0)
, _trim_end (0)
+ , _trim_type (CPL)
, _dcp_ab (false)
, _use_content_audio (true)
, _audio_gain (0)
@@ -163,6 +164,7 @@ Film::Film (Film const & o)
, _scaler (o._scaler)
, _trim_start (o._trim_start)
, _trim_end (o._trim_end)
+ , _trim_type (o._trim_type)
, _dcp_ab (o._dcp_ab)
, _content_audio_stream (o._content_audio_stream)
, _external_audio (o._external_audio)
@@ -232,19 +234,47 @@ Film::info_dir () const
}
string
-Film::video_mxf_dir () const
+Film::internal_video_mxf_dir () const
{
boost::filesystem::path p;
return dir ("video");
}
string
-Film::video_mxf_filename () const
+Film::internal_video_mxf_filename () const
{
return video_state_identifier() + ".mxf";
}
string
+Film::dcp_video_mxf_filename () const
+{
+ return filename_safe_name() + "_video.mxf";
+}
+
+string
+Film::dcp_audio_mxf_filename () const
+{
+ return filename_safe_name() + "_audio.mxf";
+}
+
+string
+Film::filename_safe_name () const
+{
+ string const n = name ();
+ string o;
+ for (size_t i = 0; i < n.length(); ++i) {
+ if (isalnum (n[i])) {
+ o += n[i];
+ } else {
+ o += "_";
+ }
+ }
+
+ return o;
+}
+
+string
Film::audio_analysis_path () const
{
boost::filesystem::path p;
@@ -428,6 +458,14 @@ Film::write_metadata () const
f << "scaler " << _scaler->id () << endl;
f << "trim_start " << _trim_start << endl;
f << "trim_end " << _trim_end << endl;
+ switch (_trim_type) {
+ case CPL:
+ f << "trim_type cpl\n";
+ break;
+ case ENCODE:
+ f << "trim_type encode\n";
+ break;
+ }
f << "dcp_ab " << (_dcp_ab ? "1" : "0") << endl;
if (_content_audio_stream) {
f << "selected_content_audio_stream " << _content_audio_stream->to_string() << endl;
@@ -541,6 +579,12 @@ Film::read_metadata ()
_trim_start = atoi (v.c_str ());
} else if ( ((!version || version < 2) && k == "dcp_trim_end") || k == "trim_end") {
_trim_end = atoi (v.c_str ());
+ } else if (k == "trim_type") {
+ if (v == "cpl") {
+ _trim_type = CPL;
+ } else if (v == "encode") {
+ _trim_type = ENCODE;
+ }
} else if (k == "dcp_ab") {
_dcp_ab = (v == "1");
} else if (k == "selected_content_audio_stream" || (!version && k == "selected_audio_stream")) {
@@ -1097,6 +1141,16 @@ Film::set_trim_end (int t)
}
void
+Film::set_trim_type (TrimType t)
+{
+ {
+ boost::mutex::scoped_lock lm (_state_mutex);
+ _trim_type = t;
+ }
+ signal_changed (TRIM_TYPE);
+}
+
+void
Film::set_dcp_ab (bool a)
{
{
diff --git a/src/lib/film.h b/src/lib/film.h
index adc4b0eec..dd0a83d94 100644
--- a/src/lib/film.h
+++ b/src/lib/film.h
@@ -64,10 +64,13 @@ public:
std::string info_dir () const;
std::string j2c_path (int f, bool t) const;
std::string info_path (int f) const;
- std::string video_mxf_dir () const;
- std::string video_mxf_filename () const;
+ std::string internal_video_mxf_dir () const;
+ std::string internal_video_mxf_filename () const;
std::string audio_analysis_path () const;
+ std::string dcp_video_mxf_filename () const;
+ std::string dcp_audio_mxf_filename () const;
+
void examine_content ();
void analyse_audio ();
void send_dcp_to_tms ();
@@ -109,6 +112,11 @@ public:
bool have_dcp () const;
+ enum TrimType {
+ CPL,
+ ENCODE
+ };
+
/** Identifiers for the parts of our state;
used for signalling changes.
*/
@@ -125,6 +133,7 @@ public:
SCALER,
TRIM_START,
TRIM_END,
+ TRIM_TYPE,
DCP_AB,
CONTENT_AUDIO_STREAM,
EXTERNAL_AUDIO,
@@ -210,6 +219,11 @@ public:
return _trim_end;
}
+ TrimType trim_type () const {
+ boost::mutex::scoped_lock lm (_state_mutex);
+ return _trim_type;
+ }
+
bool dcp_ab () const {
boost::mutex::scoped_lock lm (_state_mutex);
return _dcp_ab;
@@ -342,6 +356,7 @@ public:
void set_scaler (Scaler const *);
void set_trim_start (int);
void set_trim_end (int);
+ void set_trim_type (TrimType);
void set_dcp_ab (bool);
void set_content_audio_stream (boost::shared_ptr<AudioStream>);
void set_external_audio (std::vector<std::string>);
@@ -387,6 +402,7 @@ private:
void examine_content_finished ();
void analyse_audio_finished ();
std::string video_state_identifier () const;
+ std::string filename_safe_name () const;
/** Complete path to directory containing the film metadata;
* must not be relative.
@@ -422,6 +438,7 @@ private:
int _trim_start;
/** Frames to trim off the end of the DCP */
int _trim_end;
+ TrimType _trim_type;
/** true to create an A/B comparison DCP, where the left half of the image
is the video without any filters or post-processing, and the right half
has the specified filters and post-processing.
diff --git a/src/lib/po/sv_SE.po b/src/lib/po/sv_SE.po
index d574261c8..ef8109dfa 100644
--- a/src/lib/po/sv_SE.po
+++ b/src/lib/po/sv_SE.po
@@ -8,10 +8,9 @@ msgstr ""
"Project-Id-Version: DVD-o-matic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-04-09 11:14+0100\n"
-"PO-Revision-Date: 2013-04-09 10:13+0100\n"
+"PO-Revision-Date: 2013-04-10 15:35+0100\n"
"Last-Translator: Adam Klotblixt <adam.klotblixt@gmail.com>\n"
"Language-Team: \n"
-"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -50,9 +49,8 @@ msgid "16:9 within Flat"
msgstr "16:9 innanför Flat"
#: src/lib/format.cc:115
-#, fuzzy
msgid "16:9 within Scope"
-msgstr "16:9 innanför Flat"
+msgstr "16:9 innanför Scope"
#: src/lib/filter.cc:88
msgid "3D denoiser"
@@ -76,7 +74,7 @@ msgstr "Reklam"
#: src/lib/job.cc:72
msgid "An error occurred whilst handling the file %1."
-msgstr "Ett fel inträffade vid hantering av filen (%1)"
+msgstr "Ett fel inträffade vid hantering av filen %1"
#: src/lib/analyse_audio_job.cc:49
msgid "Analyse audio of %1"
diff --git a/src/lib/writer.cc b/src/lib/writer.cc
index 2d7ee9ba3..c6ce4711d 100644
--- a/src/lib/writer.cc
+++ b/src/lib/writer.cc
@@ -65,8 +65,8 @@ Writer::Writer (shared_ptr<Film> f)
_picture_asset.reset (
new libdcp::MonoPictureAsset (
- _film->video_mxf_dir (),
- _film->video_mxf_filename (),
+ _film->internal_video_mxf_dir (),
+ _film->internal_video_mxf_filename (),
_film->dcp_frame_rate (),
_film->format()->dcp_size ()
)
@@ -80,7 +80,7 @@ Writer::Writer (shared_ptr<Film> f)
_sound_asset.reset (
new libdcp::SoundAsset (
_film->dir (_film->dcp_name()),
- N_("audio.mxf"),
+ _film->dcp_audio_mxf_filename (),
_film->dcp_frame_rate (),
m.dcp_channels (),
dcp_audio_sample_rate (_film->audio_stream()->sample_rate())
@@ -267,12 +267,12 @@ Writer::finish ()
/* Hard-link the video MXF into the DCP */
boost::filesystem::path from;
- from /= _film->video_mxf_dir();
- from /= _film->video_mxf_filename();
+ from /= _film->internal_video_mxf_dir();
+ from /= _film->internal_video_mxf_filename();
boost::filesystem::path to;
to /= _film->dir (_film->dcp_name());
- to /= N_("video.mxf");
+ to /= _film->dcp_video_mxf_filename ();
boost::system::error_code ec;
boost::filesystem::create_hard_link (from, to, ec);
@@ -285,7 +285,7 @@ Writer::finish ()
/* And update the asset */
_picture_asset->set_directory (_film->dir (_film->dcp_name ()));
- _picture_asset->set_file_name (N_("video.mxf"));
+ _picture_asset->set_file_name (_film->dcp_video_mxf_filename ());
if (_sound_asset) {
_sound_asset->set_entry_point (_film->trim_start ());
@@ -339,8 +339,8 @@ Writer::check_existing_picture_mxf ()
{
/* Try to open the existing MXF */
boost::filesystem::path p;
- p /= _film->video_mxf_dir ();
- p /= _film->video_mxf_filename ();
+ p /= _film->internal_video_mxf_dir ();
+ p /= _film->internal_video_mxf_filename ();
FILE* mxf = fopen (p.string().c_str(), N_("rb"));
if (!mxf) {
return;
diff --git a/src/tools/po/sv_SE.po b/src/tools/po/sv_SE.po
index 57254770c..28566d876 100644
--- a/src/tools/po/sv_SE.po
+++ b/src/tools/po/sv_SE.po
@@ -107,8 +107,8 @@ msgid "S&how DCP"
msgstr "&Visa DCP"
#: src/tools/dvdomatic.cc:74
-msgid "Save changes to film \"%s\" before closing?"
-msgstr "Spara ändringarna till filmen \"%s\" före avslut?"
+msgid "Save changes to film \"%1\" before closing?"
+msgstr "Spara ändringarna till filmen \"%1\" före avslut?"
#: src/tools/dvdomatic.cc:319
msgid "Select film to open"
diff --git a/src/wx/film_editor.cc b/src/wx/film_editor.cc
index 62eecb70c..a21782a6f 100644
--- a/src/wx/film_editor.cc
+++ b/src/wx/film_editor.cc
@@ -156,11 +156,6 @@ FilmEditor::make_film_panel ()
_frame_rate_description->SetFont(font);
++r;
- video_control (add_label_to_grid_bag_sizer (grid, _film_panel, _("Original Size"), wxGBPosition (r, 0)));
- _original_size = new wxStaticText (_film_panel, wxID_ANY, wxT (""));
- grid->Add (video_control (_original_size), wxGBPosition (r, 1), wxDefaultSpan, wxALIGN_CENTER_VERTICAL);
- ++r;
-
video_control (add_label_to_grid_bag_sizer (grid, _film_panel, _("Length"), wxGBPosition (r, 0)));
_length = new wxStaticText (_film_panel, wxID_ANY, wxT (""));
grid->Add (video_control (_length), wxGBPosition (r, 1), wxDefaultSpan, wxALIGN_CENTER_VERTICAL);
@@ -181,6 +176,11 @@ FilmEditor::make_film_panel ()
}
++r;
+ video_control (add_label_to_grid_bag_sizer (grid, _film_panel, _("Trim method"), wxGBPosition (r, 0)));
+ _trim_type = new wxChoice (_film_panel, wxID_ANY);
+ grid->Add (video_control (_trim_type), wxGBPosition (r, 1), wxDefaultSpan, wxALIGN_CENTER_VERTICAL);
+ ++r;
+
_dcp_ab = new wxCheckBox (_film_panel, wxID_ANY, _("A/B"));
video_control (_dcp_ab);
grid->Add (_dcp_ab, wxGBPosition (r, 0));
@@ -208,45 +208,49 @@ FilmEditor::make_film_panel ()
for (list<int>::const_iterator i = dfr.begin(); i != dfr.end(); ++i) {
_dcp_frame_rate->Append (std_to_wx (boost::lexical_cast<string> (*i)));
}
+
+ _trim_type->Append (_("encode all frames and play the subset"));
+ _trim_type->Append (_("encode only the subset"));
}
void
FilmEditor::connect_to_widgets ()
{
- _name->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (FilmEditor::name_changed), 0, this);
- _use_dci_name->Connect (wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler (FilmEditor::use_dci_name_toggled), 0, this);
- _edit_dci_button->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (FilmEditor::edit_dci_button_clicked), 0, this);
- _format->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (FilmEditor::format_changed), 0, this);
- _content->Connect (wxID_ANY, wxEVT_COMMAND_FILEPICKER_CHANGED, wxCommandEventHandler (FilmEditor::content_changed), 0, this);
- _trust_content_header->Connect (wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler (FilmEditor::trust_content_header_changed), 0, this);
- _left_crop->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::left_crop_changed), 0, this);
- _right_crop->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::right_crop_changed), 0, this);
- _top_crop->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::top_crop_changed), 0, this);
- _bottom_crop->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::bottom_crop_changed), 0, this);
- _filters_button->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (FilmEditor::edit_filters_clicked), 0, this);
- _scaler->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (FilmEditor::scaler_changed), 0, this);
- _dcp_content_type->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (FilmEditor::dcp_content_type_changed), 0, this);
- _dcp_frame_rate->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (FilmEditor::dcp_frame_rate_changed), 0, this);
- _best_dcp_frame_rate->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (FilmEditor::best_dcp_frame_rate_clicked), 0, this);
- _dcp_ab->Connect (wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler (FilmEditor::dcp_ab_toggled), 0, this);
- _still_duration->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::still_duration_changed), 0, this);
- _trim_start->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::trim_start_changed), 0, this);
- _trim_end->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::trim_end_changed), 0, this);
- _with_subtitles->Connect (wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler (FilmEditor::with_subtitles_toggled), 0, this);
- _subtitle_offset->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::subtitle_offset_changed), 0, this);
- _subtitle_scale->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::subtitle_scale_changed), 0, this);
- _colour_lut->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (FilmEditor::colour_lut_changed), 0, this);
- _j2k_bandwidth->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::j2k_bandwidth_changed), 0, this);
- _subtitle_stream->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (FilmEditor::subtitle_stream_changed), 0, this);
- _audio_stream->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (FilmEditor::audio_stream_changed), 0, this);
- _audio_gain->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::audio_gain_changed), 0, this);
+ _name->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (FilmEditor::name_changed), 0, this);
+ _use_dci_name->Connect (wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler (FilmEditor::use_dci_name_toggled), 0, this);
+ _edit_dci_button->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (FilmEditor::edit_dci_button_clicked), 0, this);
+ _format->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (FilmEditor::format_changed), 0, this);
+ _content->Connect (wxID_ANY, wxEVT_COMMAND_FILEPICKER_CHANGED, wxCommandEventHandler (FilmEditor::content_changed), 0, this);
+ _trust_content_header->Connect (wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler (FilmEditor::trust_content_header_changed), 0, this);
+ _left_crop->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::left_crop_changed), 0, this);
+ _right_crop->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::right_crop_changed), 0, this);
+ _top_crop->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::top_crop_changed), 0, this);
+ _bottom_crop->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::bottom_crop_changed), 0, this);
+ _filters_button->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (FilmEditor::edit_filters_clicked), 0, this);
+ _scaler->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (FilmEditor::scaler_changed), 0, this);
+ _dcp_content_type->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (FilmEditor::dcp_content_type_changed), 0, this);
+ _dcp_frame_rate->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (FilmEditor::dcp_frame_rate_changed), 0, this);
+ _best_dcp_frame_rate->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (FilmEditor::best_dcp_frame_rate_clicked), 0, this);
+ _dcp_ab->Connect (wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler (FilmEditor::dcp_ab_toggled), 0, this);
+ _still_duration->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::still_duration_changed), 0, this);
+ _trim_start->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::trim_start_changed), 0, this);
+ _trim_end->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::trim_end_changed), 0, this);
+ _trim_type->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (FilmEditor::trim_type_changed), 0, this);
+ _with_subtitles->Connect (wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler (FilmEditor::with_subtitles_toggled), 0, this);
+ _subtitle_offset->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::subtitle_offset_changed), 0, this);
+ _subtitle_scale->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::subtitle_scale_changed), 0, this);
+ _colour_lut->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (FilmEditor::colour_lut_changed), 0, this);
+ _j2k_bandwidth->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::j2k_bandwidth_changed), 0, this);
+ _subtitle_stream->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (FilmEditor::subtitle_stream_changed), 0, this);
+ _audio_stream->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (FilmEditor::audio_stream_changed), 0, this);
+ _audio_gain->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::audio_gain_changed), 0, this);
_audio_gain_calculate_button->Connect (
wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (FilmEditor::audio_gain_calculate_button_clicked), 0, this
);
- _show_audio->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (FilmEditor::show_audio_clicked), 0, this);
- _audio_delay->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::audio_delay_changed), 0, this);
- _use_content_audio->Connect (wxID_ANY, wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler (FilmEditor::use_audio_changed), 0, this);
- _use_external_audio->Connect (wxID_ANY, wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler (FilmEditor::use_audio_changed), 0, this);
+ _show_audio->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (FilmEditor::show_audio_clicked), 0, this);
+ _audio_delay->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::audio_delay_changed), 0, this);
+ _use_content_audio->Connect (wxID_ANY, wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler (FilmEditor::use_audio_changed), 0, this);
+ _use_external_audio->Connect (wxID_ANY, wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler (FilmEditor::use_audio_changed), 0, this);
for (int i = 0; i < MAX_AUDIO_CHANNELS; ++i) {
_external_audio[i]->Connect (
wxID_ANY, wxEVT_COMMAND_FILEPICKER_CHANGED, wxCommandEventHandler (FilmEditor::external_audio_changed), 0, this
@@ -682,12 +686,6 @@ FilmEditor::film_changed (Film::Property p)
setup_frame_rate_description ();
break;
case Film::SIZE:
- if (_film->size().width == 0 && _film->size().height == 0) {
- _original_size->SetLabel (wxT (""));
- } else {
- s << _film->size().width << " x " << _film->size().height;
- _original_size->SetLabel (std_to_wx (s.str ()));
- }
setup_scaling_description ();
break;
case Film::LENGTH:
@@ -720,6 +718,9 @@ FilmEditor::film_changed (Film::Property p)
case Film::TRIM_END:
checked_set (_trim_end, _film->trim_end());
break;
+ case Film::TRIM_TYPE:
+ checked_set (_trim_type, _film->trim_type() == Film::CPL ? 0 : 1);
+ break;
case Film::AUDIO_GAIN:
checked_set (_audio_gain, _film->audio_gain ());
break;
@@ -898,6 +899,7 @@ FilmEditor::set_film (shared_ptr<Film> f)
film_changed (Film::SCALER);
film_changed (Film::TRIM_START);
film_changed (Film::TRIM_END);
+ film_changed (Film::TRIM_TYPE);
film_changed (Film::DCP_AB);
film_changed (Film::CONTENT_AUDIO_STREAM);
film_changed (Film::EXTERNAL_AUDIO);
@@ -944,6 +946,7 @@ FilmEditor::set_things_sensitive (bool s)
_dcp_frame_rate->Enable (s);
_trim_start->Enable (s);
_trim_end->Enable (s);
+ _trim_type->Enable (s);
_dcp_ab->Enable (s);
_colour_lut->Enable (s);
_j2k_bandwidth->Enable (s);
@@ -1400,3 +1403,9 @@ FilmEditor::setup_scaling_description ()
_scaling_description->SetLabel (d);
}
+
+void
+FilmEditor::trim_type_changed (wxCommandEvent &)
+{
+ _film->set_trim_type (_trim_type->GetSelection () == 0 ? Film::CPL : Film::ENCODE);
+}
diff --git a/src/wx/film_editor.h b/src/wx/film_editor.h
index 7123620d3..e2a4d5836 100644
--- a/src/wx/film_editor.h
+++ b/src/wx/film_editor.h
@@ -65,6 +65,7 @@ private:
void format_changed (wxCommandEvent &);
void trim_start_changed (wxCommandEvent &);
void trim_end_changed (wxCommandEvent &);
+ void trim_type_changed (wxCommandEvent &);
void dcp_content_type_changed (wxCommandEvent &);
void dcp_ab_toggled (wxCommandEvent &);
void scaler_changed (wxCommandEvent &);
@@ -169,8 +170,6 @@ private:
wxChoice* _dcp_frame_rate;
wxButton* _best_dcp_frame_rate;
wxStaticText* _frame_rate_description;
- /** The Film's original size */
- wxStaticText* _original_size;
/** The Film's length */
wxStaticText* _length;
/** The Film's audio details */
@@ -180,6 +179,7 @@ private:
wxSpinCtrl* _trim_start;
wxSpinCtrl* _trim_end;
+ wxChoice* _trim_type;
/** Selector to generate an A/B comparison DCP */
wxCheckBox* _dcp_ab;