{
switch (Config::instance()->video_view_type()) {
case Config::VIDEO_VIEW_OPENGL:
- _video_view = new GLVideoView (p);
+ _video_view = new GLVideoView (this, 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));
+ _video_view->Sized.connect (boost::bind(&FilmViewer::video_view_sized, this));
+ _timer.Bind (wxEVT_TIMER, boost::bind(&FilmViewer::timer, this));
set_film (shared_ptr<Film> ());
_player_video.first.reset ();
_player_video.second = DCPTime ();
- _frame.reset ();
+ _video_view->set_image (shared_ptr<Image>());
_closed_captions_dialog->clear ();
if (!_film) {
_player.reset ();
recreate_butler ();
- _frame.reset ();
refresh_view ();
return;
}
void
FilmViewer::refresh_view ()
{
- _state_timer.set ("refresh-view");
- _video_view->get()->Refresh ();
- _video_view->get()->Update ();
+ _state_timer.set ("update-view");
+ _video_view->update ();
_state_timer.unset ();
}
FilmViewer::display_player_video ()
{
if (!_player_video.first) {
- _frame.reset ();
+ _video_view->set_image (shared_ptr<Image>());
refresh_view ();
return;
}
_state_timer.set ("get image");
- /* XXX: do we need to store _frame? */
- _frame = _player_video.first->image (bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true);
- _video_view->set_image (_frame);
+ _video_view->set_image (
+ _player_video.first->image(bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true)
+ );
_state_timer.set ("ImageChanged");
ImageChanged (_player_video.first);