X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fwx%2Ffilm_viewer.h;h=077d8a6a54c17dd146761ce4cccfb98a3a759b38;hb=7c33cdd95a23ff784c0e0731a9d1444ce9bb8f09;hp=e9450c7e7166a7c92926099fc60577a2e0fcec66;hpb=5de2fd90b92829cea8ab297c6fce81c582332cb7;p=dcpomatic.git diff --git a/src/wx/film_viewer.h b/src/wx/film_viewer.h index e9450c7e7..077d8a6a5 100644 --- a/src/wx/film_viewer.h +++ b/src/wx/film_viewer.h @@ -53,6 +53,10 @@ public: return _video_view->get(); } + VideoView const * video_view () const { + return _video_view; + } + void show_closed_captions (); void set_film (boost::shared_ptr); @@ -71,6 +75,8 @@ public: void start (); bool stop (); + void suspend (); + void resume (); bool playing () const { return _playing; } @@ -129,9 +135,6 @@ public: bool pad_black () const { return _pad_black; } - dcpomatic::DCPTime video_position () const { - return _video_position; - } boost::signals2::signal)> ImageChanged; boost::signals2::signal PositionChanged; @@ -143,11 +146,15 @@ public: boost::signals2::signal PlaybackPermitted; private: + + /* XXX_b: to remove */ + friend class SimpleVideoView; + void video_view_sized (); - void timer (); void calculate_sizes (); void player_change (ChangeType type, int, bool); - void get (); + void idle_handler (); + void request_idle_get (); void display_player_video (); void film_change (ChangeType, Film::Property); void recreate_butler (); @@ -164,7 +171,6 @@ private: boost::shared_ptr _player; VideoView* _video_view; - wxTimer _timer; bool _coalesce_player_changes; std::list _pending_player_changes; @@ -180,6 +186,7 @@ private: int _audio_channels; unsigned int _audio_block_size; bool _playing; + int _suspended; boost::shared_ptr _butler; std::list _latency_history; @@ -206,5 +213,8 @@ private: StateTimer _state_timer; int _gets; + /** true if an get() is required next time we are idle */ + bool _idle_get; + boost::signals2::scoped_connection _config_changed_connection; };