X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fvideo_panel.cc;h=a5d197c2a15324e81b32e557ed8d45ad0a889931;hb=cf8bbea2de38c4e9ac140f55b27311b7b6dcd814;hp=ac4c29222b231e9912ca1e7306bbd91f253c8ac2;hpb=07f3a8fccdf9127b2eaf4a6f3425185dba73a23f;p=dcpomatic.git diff --git a/src/wx/video_panel.cc b/src/wx/video_panel.cc index ac4c29222..a5d197c2a 100644 --- a/src/wx/video_panel.cc +++ b/src/wx/video_panel.cc @@ -24,12 +24,13 @@ #include "lib/config.h" #include "lib/util.h" #include "lib/ratio.h" +#include "lib/frame_rate_change.h" #include "filter_dialog.h" #include "video_panel.h" #include "wx_util.h" -#include "film_editor.h" #include "content_colour_conversion_dialog.h" #include "content_widget.h" +#include "content_panel.h" using std::vector; using std::string; @@ -63,8 +64,8 @@ scale_to_index (VideoContentScale scale) assert (false); } -VideoPanel::VideoPanel (FilmEditor* e) - : FilmEditorPanel (e, _("Video")) +VideoPanel::VideoPanel (ContentPanel* p) + : ContentSubPanel (p, _("Video")) { wxGridBagSizer* grid = new wxGridBagSizer (DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); _sizer->Add (grid, 0, wxALL, 8); @@ -221,7 +222,7 @@ VideoPanel::film_changed (Film::Property property) void VideoPanel::film_content_changed (int property) { - VideoContentList vc = _editor->selected_video_content (); + VideoContentList vc = _parent->selected_video (); shared_ptr vcs; shared_ptr fcs; if (!vc.empty ()) { @@ -257,7 +258,7 @@ VideoPanel::film_content_changed (int property) void VideoPanel::edit_filters_clicked () { - FFmpegContentList c = _editor->selected_ffmpeg_content (); + FFmpegContentList c = _parent->selected_ffmpeg (); if (c.size() != 1) { return; } @@ -271,7 +272,7 @@ VideoPanel::edit_filters_clicked () void VideoPanel::setup_description () { - VideoContentList vc = _editor->selected_video_content (); + VideoContentList vc = _parent->selected_video (); if (vc.empty ()) { _description->SetLabel (""); return; @@ -297,8 +298,8 @@ VideoPanel::setup_description () } Crop const crop = vcs->crop (); - if ((crop.left || crop.right || crop.top || crop.bottom) && vcs->video_size() != libdcp::Size (0, 0)) { - libdcp::Size cropped = vcs->video_size_after_crop (); + if ((crop.left || crop.right || crop.top || crop.bottom) && vcs->video_size() != dcp::Size (0, 0)) { + dcp::Size cropped = vcs->video_size_after_crop (); d << wxString::Format ( _("Cropped to %dx%d (%.2f:1)\n"), cropped.width, cropped.height, @@ -307,8 +308,8 @@ VideoPanel::setup_description () ++lines; } - libdcp::Size const container_size = _editor->film()->frame_size (); - libdcp::Size const scaled = vcs->scale().size (vcs, container_size, container_size); + dcp::Size const container_size = _parent->film()->frame_size (); + dcp::Size const scaled = vcs->scale().size (vcs, container_size, container_size, 1); if (scaled != vcs->video_size_after_crop ()) { d << wxString::Format ( @@ -330,8 +331,8 @@ VideoPanel::setup_description () d << wxString::Format (_("Content frame rate %.4f\n"), vcs->video_frame_rate ()); ++lines; - FrameRateConversion frc (vcs->video_frame_rate(), _editor->film()->video_frame_rate ()); - d << std_to_wx (frc.description) << "\n"; + FrameRateChange frc (vcs->video_frame_rate(), _parent->film()->video_frame_rate ()); + d << std_to_wx (frc.description ()) << "\n"; ++lines; for (int i = lines; i < 6; ++i) { @@ -345,7 +346,7 @@ VideoPanel::setup_description () void VideoPanel::edit_colour_conversion_clicked () { - VideoContentList vc = _editor->selected_video_content (); + VideoContentList vc = _parent->selected_video (); if (vc.size() != 1) { return; } @@ -362,18 +363,19 @@ VideoPanel::edit_colour_conversion_clicked () void VideoPanel::content_selection_changed () { - VideoContentList sel = _editor->selected_video_content (); - bool const single = sel.size() == 1; - - _left_crop->set_content (sel); - _right_crop->set_content (sel); - _top_crop->set_content (sel); - _bottom_crop->set_content (sel); - _frame_type->set_content (sel); - _scale->set_content (sel); - - /* Things that are only allowed with single selections */ - _filters_button->Enable (single); + VideoContentList video_sel = _parent->selected_video (); + FFmpegContentList ffmpeg_sel = _parent->selected_ffmpeg (); + + bool const single = video_sel.size() == 1; + + _left_crop->set_content (video_sel); + _right_crop->set_content (video_sel); + _top_crop->set_content (video_sel); + _bottom_crop->set_content (video_sel); + _frame_type->set_content (video_sel); + _scale->set_content (video_sel); + + _filters_button->Enable (single && !ffmpeg_sel.empty ()); _colour_conversion_button->Enable (single); film_content_changed (VideoContentProperty::VIDEO_CROP);