Untested use of Frame for video/audio content lengths.
[dcpomatic.git] / src / wx / video_panel.cc
index bc2faf1b30b27f07bbab39de2aac599457f31947..9ddfd671407bb314d4dea09d4f3f390aa097d761 100644 (file)
@@ -249,7 +249,7 @@ VideoPanel::film_content_changed (int property)
                        checked_set (_colour_conversion, wxT (""));
                } else if (vcs->colour_conversion ()) {
                        optional<size_t> preset = vcs->colour_conversion().get().preset ();
-                       vector<PresetColourConversion> cc = Config::instance()->colour_conversions ();
+                       vector<PresetColourConversion> cc = PresetColourConversion::all ();
                        if (preset) {
                                checked_set (_colour_conversion, std_to_wx (cc[preset.get()].name));
                        } else {
@@ -277,24 +277,24 @@ VideoPanel::film_content_changed (int property)
                        }
                }
        } else if (property == VideoContentProperty::VIDEO_FADE_IN) {
-               set<ContentTime> check;
+               set<Frame> check;
                for (VideoContentList::const_iterator i = vc.begin (); i != vc.end(); ++i) {
                        check.insert ((*i)->fade_in ());
                }
                
                if (check.size() == 1) {
-                       _fade_in->set (vc.front()->fade_in (), vc.front()->video_frame_rate ());
+                       _fade_in->set (ContentTime::from_frames (vc.front()->fade_in (), vc.front()->video_frame_rate ()), vc.front()->video_frame_rate ());
                } else {
                        _fade_in->clear ();
                }
        } else if (property == VideoContentProperty::VIDEO_FADE_OUT) {
-               set<ContentTime> check;
+               set<Frame> check;
                for (VideoContentList::const_iterator i = vc.begin (); i != vc.end(); ++i) {
                        check.insert ((*i)->fade_out ());
                }
                
                if (check.size() == 1) {
-                       _fade_out->set (vc.front()->fade_out (), vc.front()->video_frame_rate ());
+                       _fade_out->set (ContentTime::from_frames (vc.front()->fade_out (), vc.front()->video_frame_rate ()), vc.front()->video_frame_rate ());
                } else {
                        _fade_out->clear ();
                }
@@ -368,14 +368,17 @@ VideoPanel::content_selection_changed ()
        
        bool const single = video_sel.size() == 1;
 
+       _frame_type->set_content (video_sel);
        _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);
+       _fade_in->Enable (!video_sel.empty ());
+       _fade_out->Enable (!video_sel.empty ());
        _scale->set_content (video_sel);
 
        _filters_button->Enable (single && !ffmpeg_sel.empty ());
+       _enable_colour_conversion->Enable (single);
        _colour_conversion_button->Enable (single);
 
        film_content_changed (VideoContentProperty::VIDEO_CROP);
@@ -391,7 +394,8 @@ VideoPanel::fade_in_changed ()
 {
        VideoContentList vc = _parent->selected_video ();
        for (VideoContentList::const_iterator i = vc.begin(); i != vc.end(); ++i) {
-               (*i)->set_fade_in (_fade_in->get (_parent->film()->video_frame_rate ()));
+               int const vfr = _parent->film()->video_frame_rate ();
+               (*i)->set_fade_in (_fade_in->get (vfr).frames (vfr));
        }
 }
 
@@ -400,7 +404,8 @@ VideoPanel::fade_out_changed ()
 {
        VideoContentList vc = _parent->selected_video ();
        for (VideoContentList::const_iterator i = vc.begin(); i != vc.end(); ++i) {
-               (*i)->set_fade_out (_fade_out->get (_parent->film()->video_frame_rate ()));
+               int const vfr = _parent->film()->video_frame_rate ();
+               (*i)->set_fade_out (_fade_out->get (vfr).frames (vfr));
        }
 }