X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fwx%2Ffilm_viewer.cc;h=4066710e7e90936c5dbd86ca9d74293c4fc11c64;hb=5e2b926c116bbce2800fe3459e5a654101355482;hp=5af2d7462b76dd7820c28a683bf3905d2b92f84d;hpb=a8e31120a793f09ab56cc2847d76944ba698ba95;p=dcpomatic.git diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index 5af2d7462..4066710e7 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -28,6 +28,7 @@ #include "wx_util.h" #include "closed_captions_dialog.h" #include "gl_video_view.h" +#include "simple_video_view.h" #include "lib/film.h" #include "lib/ratio.h" #include "lib/util.h" @@ -78,9 +79,7 @@ rtaudio_callback (void* out, void *, unsigned int frames, double, RtAudioStreamS } FilmViewer::FilmViewer (wxWindow* p) - /* XXX: make this configurable */ - : _video_view (new GLVideoView(p)) - , _coalesce_player_changes (false) + : _coalesce_player_changes (false) , _audio (DCPOMATIC_RTAUDIO_API) , _audio_channels (0) , _audio_block_size (1024) @@ -98,6 +97,15 @@ FilmViewer::FilmViewer (wxWindow* p) , _state_timer ("viewer") , _gets (0) { + switch (Config::instance()->video_view_type()) { + case Config::VIDEO_VIEW_OPENGL: + _video_view = new GLVideoView (p); + break; + case Config::VIDEO_VIEW_SIMPLE: + _video_view = new SimpleVideoView (this, p); + break; + } + /* XXX: maybe this should be proxied through the VideoView */ _video_view->get()->Bind (wxEVT_SIZE, boost::bind (&FilmViewer::video_view_sized, this)); _timer.Bind (wxEVT_TIMER, boost::bind (&FilmViewer::timer, this)); @@ -132,7 +140,7 @@ FilmViewer::set_film (shared_ptr film) _player.reset (); recreate_butler (); _frame.reset (); - refresh_panel (); + refresh_view (); return; } @@ -207,16 +215,12 @@ FilmViewer::recreate_butler () } void -FilmViewer::refresh_panel () +FilmViewer::refresh_view () { - /* XXX */ - - /* - _state_timer.set ("refresh-panel"); - _panel->Refresh (); - _panel->Update (); + _state_timer.set ("refresh-view"); + _video_view->get()->Refresh (); + _video_view->get()->Update (); _state_timer.unset (); - */ } void @@ -249,7 +253,7 @@ FilmViewer::display_player_video () { if (!_player_video.first) { _frame.reset (); - refresh_panel (); + refresh_view (); return; } @@ -294,7 +298,7 @@ FilmViewer::display_player_video () _inter_position = _player_video.first->inter_position (); _inter_size = _player_video.first->inter_size (); - refresh_panel (); + refresh_view (); _closed_captions_dialog->update (time()); } @@ -350,7 +354,7 @@ void FilmViewer::set_outline_content (bool o) { _outline_content = o; - refresh_panel (); + refresh_view (); } void @@ -565,7 +569,7 @@ FilmViewer::config_changed (Config::Property p) { #ifdef DCPOMATIC_VARIANT_SWAROOP if (p == Config::PLAYER_BACKGROUND_IMAGE) { - refresh_panel (); + refresh_view (); return; } #endif