diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-09-04 12:50:25 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-09-04 12:50:25 +0100 |
| commit | a57717d54c34096d80a467ad78e9fdcecca70b2c (patch) | |
| tree | aee991e62c82443d7c2d780ce6cb7debe79ee1bc /src/lib/butler.cc | |
| parent | 1938b1b08d38fc199717d1875a61ef05e5b965de (diff) | |
Allow the butler to say "try again later" when get_video() is called
while it's suspended. Then make the GUI follow that suggestion.
Should
Diffstat (limited to 'src/lib/butler.cc')
| -rw-r--r-- | src/lib/butler.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/lib/butler.cc b/src/lib/butler.cc index a127ee9bd..3e408c4d5 100644 --- a/src/lib/butler.cc +++ b/src/lib/butler.cc @@ -190,17 +190,27 @@ try } pair<shared_ptr<PlayerVideo>, DCPTime> -Butler::get_video () +Butler::get_video (Error* e) { boost::mutex::scoped_lock lm (_mutex); + if (_suspended) { + if (e) { + *e = AGAIN; + } + return make_pair(shared_ptr<PlayerVideo>(), DCPTime()); + } + /* Wait for data if we have none */ while (_video.empty() && !_finished && !_died) { _arrived.wait (lm); } if (_video.empty()) { - return make_pair (shared_ptr<PlayerVideo>(), DCPTime()); + if (e) { + *e = NONE; + } + return make_pair(shared_ptr<PlayerVideo>(), DCPTime()); } pair<shared_ptr<PlayerVideo>, DCPTime> const r = _video.get (); |
