summaryrefslogtreecommitdiff
path: root/src/lib/butler.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-08-18 22:49:46 +0100
committerCarl Hetherington <cth@carlh.net>2018-08-19 01:29:04 +0100
commit9a27d60ea7888d300a5a2414a477091428589b82 (patch)
tree42db6de6bf6d420a760e79f93d0ce3ea47423d57 /src/lib/butler.h
parent0bd80b641875632b9b2b17530d00e4546bba8088 (diff)
Suspend butler on player may-change as otherwise there's a window
between Player::_suspended being set to false and the the butler requesting a seek, during which the butler may call pass().
Diffstat (limited to 'src/lib/butler.h')
-rw-r--r--src/lib/butler.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/butler.h b/src/lib/butler.h
index 56374deeb..6a13ed2d7 100644
--- a/src/lib/butler.h
+++ b/src/lib/butler.h
@@ -56,6 +56,7 @@ private:
void text (PlayerText pt, TextType type, DCPTimePeriod period);
bool should_run () const;
void prepare (boost::weak_ptr<PlayerVideo> video) const;
+ void suspend ();
void return_seek (bool frequent);
void seek_unlocked (DCPTime position, bool accurate);
@@ -83,6 +84,7 @@ private:
boost::condition _arrived;
boost::optional<DCPTime> _pending_seek_position;
bool _pending_seek_accurate;
+ bool _suspended;
bool _finished;
bool _died;
bool _stop_thread;
@@ -100,6 +102,7 @@ private:
boost::signals2::scoped_connection _player_video_connection;
boost::signals2::scoped_connection _player_audio_connection;
boost::signals2::scoped_connection _player_text_connection;
+ boost::signals2::scoped_connection _player_may_change_connection;
boost::signals2::scoped_connection _player_changed_connection;
boost::signals2::scoped_connection _player_not_changed_connection;
};