Add option to analyse audio automatically when content is added (#673).
[dcpomatic.git] / src / wx / film_viewer.cc
index 020d57ce3c4c5a6bc91369932c3f6598cf9e1749..f00cdfe28ae8ee910940c8d185f541a8cf146792 100644 (file)
@@ -54,6 +54,7 @@ using std::exception;
 using boost::shared_ptr;
 using boost::dynamic_pointer_cast;
 using boost::weak_ptr;
+using boost::optional;
 using dcp::Size;
 
 FilmViewer::FilmViewer (wxWindow* p)
@@ -149,6 +150,7 @@ FilmViewer::set_film (shared_ptr<Film> film)
           in the preview.
        */
        _player->set_always_burn_subtitles (true);
+       _player->set_ignore_audio ();
 
        _film_connection = _film->Changed.connect (boost::bind (&FilmViewer::film_changed, this, _1));
 
@@ -384,23 +386,12 @@ FilmViewer::update_position_label ()
 }
 
 void
-FilmViewer::active_jobs_changed (bool a)
+FilmViewer::active_jobs_changed (optional<string> j)
 {
-       if (a) {
-               list<shared_ptr<Job> > jobs = JobManager::instance()->get ();
-               list<shared_ptr<Job> >::iterator i = jobs.begin ();
-               while (i != jobs.end() && boost::dynamic_pointer_cast<ExamineContentJob> (*i) == 0) {
-                       ++i;
-               }
-
-               if (i == jobs.end() || (*i)->finished()) {
-                       /* no examine content job running, so we're ok to use the viewer */
-                       a = false;
-               }
-       }
-
-       _slider->Enable (!a);
-       _play_button->Enable (!a);
+       /* examine content is the only job which stops the viewer working */
+       bool const a = !j || *j != "examine_content";
+       _slider->Enable (a);
+       _play_button->Enable (a);
 }
 
 void