summaryrefslogtreecommitdiff
path: root/src/lib/content.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-08-19 01:04:59 +0100
committerCarl Hetherington <cth@carlh.net>2018-08-19 01:29:04 +0100
commit6c7489e5d778d3e71065d88a094a7383ba2c117d (patch)
treee3f05ad03095d88d297c7d61e03e265d28a97fa3 /src/lib/content.cc
parent9a27d60ea7888d300a5a2414a477091428589b82 (diff)
Replace May/Done/NotDone signal sets with one signal and extend
this treatment to anything that caused Player::setup_pieces. This should fix out-of-sequence Player emissions caused by setup_pieces being called by one thread while the butler is calling pass().
Diffstat (limited to 'src/lib/content.cc')
-rw-r--r--src/lib/content.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/content.cc b/src/lib/content.cc
index 8fd36a1d8..ae0b08dcc 100644
--- a/src/lib/content.cc
+++ b/src/lib/content.cc
@@ -179,10 +179,14 @@ Content::examine (shared_ptr<Job> job)
}
void
-Content::signal_changed (int p)
+Content::signal_change (ChangeType c, int p)
{
try {
- emit (boost::bind (boost::ref(Changed), shared_from_this(), p, _change_signals_frequent));
+ if (c == CHANGE_TYPE_PENDING || c == CHANGE_TYPE_CANCELLED) {
+ Change (c, shared_from_this(), p, _change_signals_frequent);
+ } else {
+ emit (boost::bind (boost::ref(Change), c, shared_from_this(), p, _change_signals_frequent));
+ }
} catch (boost::bad_weak_ptr) {
/* This must be during construction; never mind */
}