From: Carl Hetherington Date: Sat, 20 Mar 2021 09:31:07 +0000 (+0100) Subject: Fix setting of fade in/out on multiple pieces of content at the same time (#1934). X-Git-Tag: v2.15.137~26 X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=2b7db93970b37c9b21d4eff0c6d2955502ec7098 Fix setting of fade in/out on multiple pieces of content at the same time (#1934). --- diff --git a/src/wx/timecode.h b/src/wx/timecode.h index 3fe35981d..ccab0ecfc 100644 --- a/src/wx/timecode.h +++ b/src/wx/timecode.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2013-2020 Carl Hetherington + Copyright (C) 2013-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -22,6 +22,7 @@ #define DCPOMATIC_WX_TIMECODE_H #include "wx_util.h" +#include "lib/dcpomatic_time.h" #include "lib/types.h" #include #include @@ -87,7 +88,7 @@ public: _frames->SetHint (std_to_wx(dcp::raw_convert(hmsf.f))); } - T get (float fps) const + dcpomatic::HMSF get () const { auto value_or_hint = [](wxTextCtrl const * t) { auto s = wx_to_std (t->GetValue().IsEmpty() ? t->GetHint() : t->GetValue()); @@ -97,15 +98,15 @@ public: return dcp::raw_convert(s); }; - return T ( - { - value_or_hint(_hours), - value_or_hint(_minutes), - value_or_hint(_seconds), - value_or_hint(_frames) - }, - fps - ); + return { value_or_hint(_hours), + value_or_hint(_minutes), + value_or_hint(_seconds), + value_or_hint(_frames) }; + } + + T get (float fps) const + { + return T(get(), fps); } }; diff --git a/src/wx/video_panel.cc b/src/wx/video_panel.cc index 6cb3bfc87..ce6b08f26 100644 --- a/src/wx/video_panel.cc +++ b/src/wx/video_panel.cc @@ -635,18 +635,20 @@ VideoPanel::setup_sensitivity () void VideoPanel::fade_in_changed () { - for (auto i: _parent->selected_video ()) { + auto const hmsf = _fade_in->get(); + for (auto i: _parent->selected_video()) { double const vfr = i->active_video_frame_rate (_parent->film()); - i->video->set_fade_in (_fade_in->get(vfr).frames_round(vfr)); + i->video->set_fade_in (dcpomatic::ContentTime(hmsf, vfr).frames_round(vfr)); } } void VideoPanel::fade_out_changed () { - for (auto i: _parent->selected_video ()) { + auto const hmsf = _fade_out->get(); + for (auto i: _parent->selected_video()) { double const vfr = i->active_video_frame_rate (_parent->film()); - i->video->set_fade_out (_fade_out->get(vfr).frames_round(vfr)); + i->video->set_fade_out (dcpomatic::ContentTime(hmsf, vfr).frames_round(vfr)); } }