Fix non-swaroop build.
[dcpomatic.git] / src / wx / film_viewer.cc
index 35b0663b0fd10b596dd73d4f1ce18c26abdf519f..cb9e0aa2e85b3d9101d749360284269b3cd1e775 100644 (file)
@@ -89,6 +89,7 @@ FilmViewer::FilmViewer (wxWindow* p)
        , _pad_black (false)
 #ifdef DCPOMATIC_VARIANT_SWAROOP
        , _in_watermark (false)
+       , _background_image (false)
 #endif
 {
 #ifndef __WXOSX__
@@ -121,6 +122,9 @@ FilmViewer::set_film (shared_ptr<Film> film)
        }
 
        _film = film;
+       _video_position = DCPTime ();
+       _player_video.first.reset ();
+       _player_video.second = DCPTime ();
 
        _frame.reset ();
        _closed_captions_dialog->clear ();
@@ -295,6 +299,8 @@ FilmViewer::timer ()
 
        if (next >= _film->length()) {
                stop ();
+               Finished ();
+               return;
        }
 
        _timer.Start (max ((next.seconds() - time().seconds()) * 1000, 1.0), wxTIMER_ONE_SHOT);
@@ -325,13 +331,16 @@ FilmViewer::paint_panel ()
 {
        wxPaintDC dc (_panel);
 
-       if (!_frame || !_film || !_out_size.width || !_out_size.height || _out_size != _frame->size()) {
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+       if (_background_image) {
                dc.Clear ();
                maybe_draw_background_image (dc);
                return;
        }
+#endif
 
-       if (_video_position == DCPTime() && maybe_draw_background_image (dc)) {
+       if (!_out_size.width || !_out_size.height || !_film || !_frame || _out_size != _frame->size()) {
+               dc.Clear ();
                return;
        }
 
@@ -598,7 +607,6 @@ FilmViewer::seek (DCPTime t, bool accurate)
        }
 
        PositionChanged ();
-       Seeked (position());
 }
 
 void
@@ -636,7 +644,6 @@ FilmViewer::config_changed (Config::Property p)
                }
 
                _audio_channels = _audio.getDeviceInfo(st).outputChannels;
-               cout << "RtAudio reports " << _audio_channels << " channels.\n";
 
                RtAudio::StreamParameters sp;
                sp.deviceId = st;