Initial UI / backend storage.
[dcpomatic.git] / src / wx / film_viewer.cc
index f2f6ba23d73e1b6e987787b68d8388be174928a5..a46983a6f9972b0bf41efbc28ef1a4d03372988e 100644 (file)
@@ -55,7 +55,7 @@ using boost::dynamic_pointer_cast;
 using boost::weak_ptr;
 using dcp::Size;
 
-FilmViewer::FilmViewer (shared_ptr<Film> f, wxWindow* p)
+FilmViewer::FilmViewer (wxWindow* p)
        : wxPanel (p)
        , _panel (new wxPanel (this))
        , _outline_content (new wxCheckBox (this, wxID_ANY, _("Outline content")))
@@ -109,8 +109,8 @@ FilmViewer::FilmViewer (shared_ptr<Film> f, wxWindow* p)
        _back_button->Bind    (wxEVT_COMMAND_BUTTON_CLICKED,       boost::bind (&FilmViewer::back_clicked,    this));
        _forward_button->Bind (wxEVT_COMMAND_BUTTON_CLICKED,       boost::bind (&FilmViewer::forward_clicked, this));
 
-       set_film (f);
-
+       set_film (shared_ptr<Film> ());
+       
        JobManager::instance()->ActiveJobsChanged.connect (
                bind (&FilmViewer::active_jobs_changed, this, _1)
                );
@@ -151,6 +151,8 @@ FilmViewer::set_film (shared_ptr<Film> f)
 
        calculate_sizes ();
        get (_position, _last_get_accurate);
+
+       setup_sensitivity ();
 }
 
 void
@@ -170,7 +172,7 @@ FilmViewer::get (DCPTime p, bool accurate)
        list<shared_ptr<PlayerVideo> > pvf = _player->get_video (p, accurate);
        if (!pvf.empty ()) {
                try {
-                       _frame = pvf.front()->image (true);
+                       _frame = pvf.front()->image (PIX_FMT_RGB24, true);
                        _frame = _frame->scale (_frame->size(), Scaler::from_id ("fastbilinear"), PIX_FMT_RGB24, false);
                        _position = pvf.front()->time ();
                        _inter_position = pvf.front()->inter_position ();
@@ -410,7 +412,8 @@ FilmViewer::player_changed (bool frequent)
 void
 FilmViewer::setup_sensitivity ()
 {
-       bool const c = !_film->content().empty ();
+       bool const c = _film && !_film->content().empty ();
+       
        _slider->Enable (c);
        _back_button->Enable (c);
        _forward_button->Enable (c);