diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-03-02 19:16:25 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-03-02 19:16:25 +0000 |
| commit | 99d2e172f5c7fae21e5126a063014727871e9948 (patch) | |
| tree | 1d796a5c0dd91c9d44cb0e360c8668a9b3acc29d /src | |
| parent | 53eb16342d492236aca77e4b73c0911a5d5eec9f (diff) | |
Add similar format description,
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/format.cc | 85 | ||||
| -rw-r--r-- | src/lib/format.h | 12 | ||||
| -rw-r--r-- | src/lib/util.cc | 8 | ||||
| -rw-r--r-- | src/lib/util.h | 2 | ||||
| -rw-r--r-- | src/wx/film_editor.cc | 71 | ||||
| -rw-r--r-- | src/wx/film_editor.h | 3 |
6 files changed, 130 insertions, 51 deletions
diff --git a/src/lib/format.cc b/src/lib/format.cc index 0e4830cd7..b506c7000 100644 --- a/src/lib/format.cc +++ b/src/lib/format.cc @@ -71,19 +71,70 @@ void Format::setup_formats () { /// TRANSLATORS: these are film picture aspect ratios; "Academy" means 1.37, "Flat" 1.85 and "Scope" 2.39. - _formats.push_back (new FixedFormat (119, libdcp::Size (1285, 1080), N_("119"), _("1.19"), N_("F"))); - _formats.push_back (new FixedFormat (133, libdcp::Size (1436, 1080), N_("133"), _("1.33"), N_("F"))); - _formats.push_back (new FixedFormat (138, libdcp::Size (1485, 1080), N_("138"), _("1.375"), N_("F"))); - _formats.push_back (new FixedFormat (133, libdcp::Size (1998, 1080), N_("133-in-flat"), _("4:3 within Flat"), N_("F"))); - _formats.push_back (new FixedFormat (137, libdcp::Size (1480, 1080), N_("137"), _("Academy"), N_("F"))); - _formats.push_back (new FixedFormat (166, libdcp::Size (1793, 1080), N_("166"), _("1.66"), N_("F"))); - _formats.push_back (new FixedFormat (166, libdcp::Size (1998, 1080), N_("166-in-flat"), _("1.66 within Flat"), N_("F"))); - _formats.push_back (new FixedFormat (178, libdcp::Size (1998, 1080), N_("178-in-flat"), _("16:9 within Flat"), N_("F"))); - _formats.push_back (new FixedFormat (178, libdcp::Size (1920, 1080), N_("178"), _("16:9"), N_("F"))); - _formats.push_back (new FixedFormat (185, libdcp::Size (1998, 1080), N_("185"), _("Flat"), N_("F"))); - _formats.push_back (new FixedFormat (239, libdcp::Size (2048, 858), N_("239"), _("Scope"), N_("S"))); - _formats.push_back (new VariableFormat (libdcp::Size (1998, 1080), N_("var-185"), _("Flat"), N_("F"))); - _formats.push_back (new VariableFormat (libdcp::Size (2048, 858), N_("var-239"), _("Scope"), N_("S"))); + _formats.push_back ( + new FixedFormat (119, libdcp::Size (1285, 1080), N_("119"), _("1.19"), N_("F"), + _("Source scaled to 1.19:1") + )); + + _formats.push_back ( + new FixedFormat (133, libdcp::Size (1436, 1080), N_("133"), _("1.33"), N_("F"), + _("Source scaled to 1.33:1") + )); + + _formats.push_back ( + new FixedFormat (138, libdcp::Size (1485, 1080), N_("138"), _("1.375"), N_("F"), + _("Source scaled to 1.375:1") + )); + + _formats.push_back ( + new FixedFormat (133, libdcp::Size (1998, 1080), N_("133-in-flat"), _("4:3 within Flat"), N_("F"), + _("Source scaled to 1.33:1 then pillarboxed to Flat") + )); + + _formats.push_back ( + new FixedFormat (137, libdcp::Size (1480, 1080), N_("137"), _("Academy"), N_("F"), + _("Source scaled to 1.37:1 (Academy ratio)") + )); + + _formats.push_back ( + new FixedFormat (166, libdcp::Size (1793, 1080), N_("166"), _("1.66"), N_("F"), + _("Source scaled to 1.66:1") + )); + + _formats.push_back ( + new FixedFormat (166, libdcp::Size (1998, 1080), N_("166-in-flat"), _("1.66 within Flat"), N_("F"), + _("Source scaled to 1.66:1 then pillarboxed to Flat") + )); + + _formats.push_back ( + new FixedFormat (178, libdcp::Size (1998, 1080), N_("178-in-flat"), _("16:9 within Flat"), N_("F"), + _("Source scaled to 1.78:1 then pillarboxed to Flat") + )); + + _formats.push_back ( + new FixedFormat (178, libdcp::Size (1920, 1080), N_("178"), _("16:9"), N_("F"), + _("Source scaled to 1.78:1") + )); + + _formats.push_back ( + new FixedFormat (185, libdcp::Size (1998, 1080), N_("185"), _("Flat"), N_("F"), + _("Source scaled to Flat (1.85:1)") + )); + + _formats.push_back ( + new FixedFormat (239, libdcp::Size (2048, 858), N_("239"), _("Scope"), N_("S"), + _("Source scaled to Scope (2.39:1)") + )); + + _formats.push_back ( + new VariableFormat (libdcp::Size (1998, 1080), N_("var-185"), _("Flat without stretch"), N_("F"), + _("Source scaled to fit Flat preserving its aspect ratio") + )); + + _formats.push_back ( + new VariableFormat (libdcp::Size (2048, 858), N_("var-239"), _("Scope without stretch"), N_("S"), + _("Source scaled to fit Scope preserving its aspect ratio") + )); } /** @param n Nickname. @@ -144,8 +195,8 @@ Format::all () * @param id ID (e.g. 185) * @param n Nick name (e.g. Flat) */ -FixedFormat::FixedFormat (int r, libdcp::Size dcp, string id, string n, string d) - : Format (dcp, id, n, d) +FixedFormat::FixedFormat (int r, libdcp::Size dcp, string id, string n, string d, string e) + : Format (dcp, id, n, d, e) , _ratio (r) { @@ -173,8 +224,8 @@ Format::container_ratio_as_float () const return static_cast<float> (_dcp_size.width) / _dcp_size.height; } -VariableFormat::VariableFormat (libdcp::Size dcp, string id, string n, string d) - : Format (dcp, id, n, d) +VariableFormat::VariableFormat (libdcp::Size dcp, string id, string n, string d, string e) + : Format (dcp, id, n, d, e) { } diff --git a/src/lib/format.h b/src/lib/format.h index 783ff25ce..305524628 100644 --- a/src/lib/format.h +++ b/src/lib/format.h @@ -31,11 +31,12 @@ class Film; class Format { public: - Format (libdcp::Size dcp, std::string id, std::string n, std::string d) + Format (libdcp::Size dcp, std::string id, std::string n, std::string d, std::string e) : _dcp_size (dcp) , _id (id) , _nickname (n) , _dci_name (d) + , _description (e) {} /** @return the aspect ratio multiplied by 100 @@ -75,6 +76,10 @@ public: return _dci_name; } + std::string description () const { + return _description; + } + std::string as_metadata () const; static Format const * from_nickname (std::string n); @@ -94,6 +99,7 @@ protected: /** nickname (e.g. Flat, Scope) */ std::string _nickname; std::string _dci_name; + std::string _description; private: /** all available formats */ @@ -107,7 +113,7 @@ private: class FixedFormat : public Format { public: - FixedFormat (int, libdcp::Size, std::string, std::string, std::string); + FixedFormat (int, libdcp::Size, std::string, std::string, std::string, std::string); int ratio_as_integer (boost::shared_ptr<const Film>) const { return _ratio; @@ -128,7 +134,7 @@ private: class VariableFormat : public Format { public: - VariableFormat (libdcp::Size, std::string, std::string, std::string); + VariableFormat (libdcp::Size, std::string, std::string, std::string, std::string); int ratio_as_integer (boost::shared_ptr<const Film> f) const; float ratio_as_float (boost::shared_ptr<const Film> f) const; diff --git a/src/lib/util.cc b/src/lib/util.cc index d1450ccc2..71e864ebd 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -962,17 +962,17 @@ FrameRateConversion::FrameRateConversion (float source, int dcp) change_speed = !about_equal (source * factor(), dcp); if (!skip && !repeat && !change_speed) { - explanation = _("DCP and source have the same rate.\n"); + description = _("DCP and source have the same rate.\n"); } else { if (skip) { - explanation = _("DCP will use every other frame of the source.\n"); + description = _("DCP will use every other frame of the source.\n"); } else if (repeat) { - explanation = _("Each source frame will be doubled in the DCP.\n"); + description = _("Each source frame will be doubled in the DCP.\n"); } if (change_speed) { float const pc = (source * factor()) * 100 / dcp; - explanation += String::compose (_("DCP will run at %1%% of the source speed."), pc); + description += String::compose (_("DCP will run at %1%% of the source speed."), pc); } } } diff --git a/src/lib/util.h b/src/lib/util.h index b0f405890..ec67469c1 100644 --- a/src/lib/util.h +++ b/src/lib/util.h @@ -94,7 +94,7 @@ struct FrameRateConversion */ bool change_speed; - std::string explanation; + std::string description; }; int best_dcp_frame_rate (float); diff --git a/src/wx/film_editor.cc b/src/wx/film_editor.cc index 12ba7c1bc..a97562b98 100644 --- a/src/wx/film_editor.cc +++ b/src/wx/film_editor.cc @@ -97,7 +97,7 @@ FilmEditor::make_film_panel () _film_sizer = new wxBoxSizer (wxVERTICAL); _film_panel->SetSizer (_film_sizer); - wxGridBagSizer* grid = new wxGridBagSizer (6, 6); + wxGridBagSizer* grid = new wxGridBagSizer (4, 4); _film_sizer->Add (grid, 0, wxALL, 8); int r = 0; @@ -149,12 +149,12 @@ FilmEditor::make_film_panel () } ++r; - _frame_rate_explanation = new wxStaticText (_film_panel, wxID_ANY, wxT (""), wxDefaultPosition, wxDefaultSize, wxST_NO_AUTORESIZE); - grid->Add (video_control (_frame_rate_explanation), wxGBPosition (r, 0), wxGBSpan (1, 2), wxEXPAND | wxALIGN_CENTER_VERTICAL); - wxFont font = _frame_rate_explanation->GetFont(); + _frame_rate_description = new wxStaticText (_film_panel, wxID_ANY, wxT (""), wxDefaultPosition, wxDefaultSize); + grid->Add (video_control (_frame_rate_description), wxGBPosition (r, 0), wxGBSpan (1, 2), wxEXPAND | wxALIGN_CENTER_VERTICAL | wxALL, 6); + wxFont font = _frame_rate_description->GetFont(); font.SetStyle(wxFONTSTYLE_ITALIC); font.SetPointSize(font.GetPointSize() - 1); - _frame_rate_explanation->SetFont(font); + _frame_rate_description->SetFont(font); ++r; video_control (add_label_to_grid_bag_sizer (grid, _film_panel, _("Original Size"), wxGBPosition (r, 0))); @@ -262,32 +262,46 @@ FilmEditor::make_video_panel () _video_sizer = new wxBoxSizer (wxVERTICAL); _video_panel->SetSizer (_video_sizer); - wxFlexGridSizer* grid = new wxFlexGridSizer (2, 4, 4); + wxGridBagSizer* grid = new wxGridBagSizer (4, 4); _video_sizer->Add (grid, 0, wxALL, 8); - add_label_to_sizer (grid, _video_panel, _("Format")); + int r = 0; + add_label_to_grid_bag_sizer (grid, _video_panel, _("Format"), wxGBPosition (r, 0)); _format = new wxChoice (_video_panel, wxID_ANY); - grid->Add (_format); + grid->Add (_format, wxGBPosition (r, 1)); + ++r; - add_label_to_sizer (grid, _video_panel, _("Left crop")); + _format_description = new wxStaticText (_video_panel, wxID_ANY, wxT (""), wxDefaultPosition, wxDefaultSize); + grid->Add (_format_description, wxGBPosition (r, 0), wxGBSpan (1, 2), wxEXPAND | wxALIGN_CENTER_VERTICAL | wxALL, 6); + wxFont font = _format_description->GetFont(); + font.SetStyle(wxFONTSTYLE_ITALIC); + font.SetPointSize(font.GetPointSize() - 1); + _format_description->SetFont(font); + ++r; + + add_label_to_grid_bag_sizer (grid, _video_panel, _("Left crop"), wxGBPosition (r, 0)); _left_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1)); - grid->Add (_left_crop); + grid->Add (_left_crop, wxGBPosition (r, 1)); + ++r; - add_label_to_sizer (grid, _video_panel, _("Right crop")); + add_label_to_grid_bag_sizer (grid, _video_panel, _("Right crop"), wxGBPosition (r, 0)); _right_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1)); - grid->Add (_right_crop); + grid->Add (_right_crop, wxGBPosition (r, 1)); + ++r; - add_label_to_sizer (grid, _video_panel, _("Top crop")); + add_label_to_grid_bag_sizer (grid, _video_panel, _("Top crop"), wxGBPosition (r, 0)); _top_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1)); - grid->Add (_top_crop); + grid->Add (_top_crop, wxGBPosition (r, 1)); + ++r; - add_label_to_sizer (grid, _video_panel, _("Bottom crop")); + add_label_to_grid_bag_sizer (grid, _video_panel, _("Bottom crop"), wxGBPosition (r, 0)); _bottom_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1)); - grid->Add (_bottom_crop); + grid->Add (_bottom_crop, wxGBPosition (r, 1)); + ++r; /* VIDEO-only stuff */ { - video_control (add_label_to_sizer (grid, _video_panel, _("Filters"))); + video_control (add_label_to_grid_bag_sizer (grid, _video_panel, _("Filters"), wxGBPosition (r, 0))); wxSizer* s = new wxBoxSizer (wxHORIZONTAL); _filters = new wxStaticText (_video_panel, wxID_ANY, _("None")); video_control (_filters); @@ -295,34 +309,38 @@ FilmEditor::make_video_panel () _filters_button = new wxButton (_video_panel, wxID_ANY, _("Edit...")); video_control (_filters_button); s->Add (_filters_button, 0); - grid->Add (s, 1); + grid->Add (s, wxGBPosition (r, 1), wxDefaultSpan, wxALIGN_CENTER_VERTICAL); } + ++r; - video_control (add_label_to_sizer (grid, _video_panel, _("Scaler"))); + video_control (add_label_to_grid_bag_sizer (grid, _video_panel, _("Scaler"), wxGBPosition (r, 0))); _scaler = new wxChoice (_video_panel, wxID_ANY); - grid->Add (video_control (_scaler), 1); + grid->Add (video_control (_scaler), wxGBPosition (r, 1)); + ++r; vector<Scaler const *> const sc = Scaler::all (); for (vector<Scaler const *>::const_iterator i = sc.begin(); i != sc.end(); ++i) { _scaler->Append (std_to_wx ((*i)->name())); } - add_label_to_sizer (grid, _video_panel, _("Colour look-up table")); + add_label_to_grid_bag_sizer (grid, _video_panel, _("Colour look-up table"), wxGBPosition (r, 0)); _colour_lut = new wxChoice (_video_panel, wxID_ANY); for (int i = 0; i < 2; ++i) { _colour_lut->Append (std_to_wx (colour_lut_index_to_name (i))); } _colour_lut->SetSelection (0); - grid->Add (_colour_lut, 1, wxEXPAND); + grid->Add (_colour_lut, wxGBPosition (r, 1), wxDefaultSpan, wxEXPAND); + ++r; { - add_label_to_sizer (grid, _video_panel, _("JPEG2000 bandwidth")); + add_label_to_grid_bag_sizer (grid, _video_panel, _("JPEG2000 bandwidth"), wxGBPosition (r, 0)); wxSizer* s = new wxBoxSizer (wxHORIZONTAL); _j2k_bandwidth = new wxSpinCtrl (_video_panel, wxID_ANY); s->Add (_j2k_bandwidth, 1); add_label_to_sizer (s, _video_panel, _("MBps")); - grid->Add (s, 1); + grid->Add (s, wxGBPosition (r, 1)); } + ++r; _left_crop->SetRange (0, 1024); _top_crop->SetRange (0, 1024); @@ -624,6 +642,8 @@ FilmEditor::film_changed (Film::Property p) checked_set (_format, n); } setup_dcp_name (); + + _format_description->SetLabel (std_to_wx (_film->format()->description ())); break; } case Film::CROP: @@ -761,7 +781,8 @@ FilmEditor::film_changed (Film::Property p) } } } - _frame_rate_explanation->SetLabel (std_to_wx (FrameRateConversion (_film->source_frame_rate(), _film->dcp_frame_rate()).explanation)); + _frame_rate_description->SetLabel (std_to_wx (FrameRateConversion (_film->source_frame_rate(), _film->dcp_frame_rate()).description)); + _best_dcp_frame_rate->Enable (best_dcp_frame_rate (_film->source_frame_rate ()) != _film->dcp_frame_rate ()); } } diff --git a/src/wx/film_editor.h b/src/wx/film_editor.h index e9e21894e..29b453b8b 100644 --- a/src/wx/film_editor.h +++ b/src/wx/film_editor.h @@ -123,6 +123,7 @@ private: wxButton* _edit_dci_button; /** The Film's format */ wxChoice* _format; + wxStaticText* _format_description; /** The Film's content file */ wxFilePickerCtrl* _content; wxCheckBox* _trust_content_header; @@ -163,7 +164,7 @@ private: wxStaticText* _source_frame_rate; wxChoice* _dcp_frame_rate; wxButton* _best_dcp_frame_rate; - wxStaticText* _frame_rate_explanation; + wxStaticText* _frame_rate_description; /** The Film's original size */ wxStaticText* _original_size; /** The Film's length */ |
