X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ftiming_panel.cc;h=f33e052a1ad41dad2f2adea9b0b7aa39f7823ceb;hb=39bc73fe192f932ed6695eb87b19de446e8b4f55;hp=2321fd0dfdbfb7ac84ce8f1d12b603d9064adcf9;hpb=04ef57589ebb7c0de3377172a03b24698fd2364a;p=dcpomatic.git diff --git a/src/wx/timing_panel.cc b/src/wx/timing_panel.cc index 2321fd0df..f33e052a1 100644 --- a/src/wx/timing_panel.cc +++ b/src/wx/timing_panel.cc @@ -19,6 +19,7 @@ #include "lib/content.h" #include "lib/image_content.h" +#include "lib/sndfile_content.h" #include "timing_panel.h" #include "wx_util.h" #include "timecode.h" @@ -80,12 +81,14 @@ TimingPanel::film_content_changed (int property) if (cl.size() == 1) { content = cl.front (); } + + int const film_video_frame_rate = _editor->film()->video_frame_rate (); if (property == ContentProperty::POSITION) { if (content) { - _position->set (content->position (), _editor->film()->video_frame_rate ()); + _position->set (content->position (), film_video_frame_rate); } else { - _position->set (0, 24); + _position->set (DCPTime () , 24); } } else if ( property == ContentProperty::LENGTH || @@ -93,27 +96,27 @@ TimingPanel::film_content_changed (int property) property == VideoContentProperty::VIDEO_FRAME_TYPE ) { if (content) { - _full_length->set (content->full_length (), _editor->film()->video_frame_rate ()); - _play_length->set (content->length_after_trim (), _editor->film()->video_frame_rate ()); + _full_length->set (content->full_length (), film_video_frame_rate); + _play_length->set (content->length_after_trim (), film_video_frame_rate); } else { - _full_length->set (0, 24); - _play_length->set (0, 24); + _full_length->set (DCPTime (), 24); + _play_length->set (DCPTime (), 24); } } else if (property == ContentProperty::TRIM_START) { if (content) { - _trim_start->set (content->trim_start (), _editor->film()->video_frame_rate ()); - _play_length->set (content->length_after_trim (), _editor->film()->video_frame_rate ()); + _trim_start->set (content->trim_start (), film_video_frame_rate); + _play_length->set (content->length_after_trim (), film_video_frame_rate); } else { - _trim_start->set (0, 24); - _play_length->set (0, 24); + _trim_start->set (DCPTime (), 24); + _play_length->set (DCPTime (), 24); } } else if (property == ContentProperty::TRIM_END) { if (content) { - _trim_end->set (content->trim_end (), _editor->film()->video_frame_rate ()); - _play_length->set (content->length_after_trim (), _editor->film()->video_frame_rate ()); + _trim_end->set (content->trim_end (), film_video_frame_rate); + _play_length->set (content->length_after_trim (), film_video_frame_rate); } else { - _trim_end->set (0, 24); - _play_length->set (0, 24); + _trim_end->set (DCPTime (), 24); + _play_length->set (DCPTime (), 24); } } @@ -131,9 +134,10 @@ TimingPanel::film_content_changed (int property) } shared_ptr ic = dynamic_pointer_cast (content); + shared_ptr sc = dynamic_pointer_cast (content); _full_length->set_editable (ic && ic->still ()); _play_length->set_editable (!ic || !ic->still ()); - _video_frame_rate->Enable (ic && !ic->still ()); + _video_frame_rate->Enable ((ic && !ic->still ()) || sc); _set_video_frame_rate->Enable (false); } @@ -153,7 +157,8 @@ TimingPanel::full_length_changed () if (c.size() == 1) { shared_ptr ic = dynamic_pointer_cast (c.front ()); if (ic && ic->still ()) { - ic->set_video_length (rint (_full_length->get (_editor->film()->video_frame_rate()) * ic->video_frame_rate() / TIME_HZ)); + /* XXX: No effective FRC here... is this right? */ + ic->set_video_length (ContentTime (_full_length->get (_editor->film()->video_frame_rate()), FrameRateChange (1, 1))); } } } @@ -200,8 +205,8 @@ TimingPanel::set_video_frame_rate () shared_ptr ic = dynamic_pointer_cast (c.front ()); if (ic) { ic->set_video_frame_rate (lexical_cast (wx_to_std (_video_frame_rate->GetValue ()))); - _set_video_frame_rate->Enable (false); } + _set_video_frame_rate->Enable (false); } }