using boost::shared_ptr;
using boost::dynamic_pointer_cast;
using boost::weak_ptr;
+using boost::optional;
using dcp::Size;
FilmViewer::FilmViewer (wxWindow* p)
set_film (shared_ptr<Film> ());
JobManager::instance()->ActiveJobsChanged.connect (
- bind (&FilmViewer::active_jobs_changed, this, _1)
+ bind (&FilmViewer::active_jobs_changed, this, _2)
);
setup_sensitivity ();
in the preview.
*/
_player->set_always_burn_subtitles (true);
+ _player->set_ignore_audio ();
+ _player->set_play_referenced ();
_film_connection = _film->Changed.connect (boost::bind (&FilmViewer::film_changed, this, _1));
}
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