+ @property
+ def master_gain(self):
+ return gain(self.master_volume)
+
+ def set_master_volume(self, value, delta=False, fade=0):
+ [db_gain, self.master_volume] = gain(
+ value + int(delta) * self.master_volume,
+ self.master_volume)
+
+ for music in self.open_files.values():
+ music.set_gain_with_effect(db_gain, fade=fade)
+
+ def add_wait_id(self, wait_id, action_or_wait):
+ self.wait_ids[wait_id] = action_or_wait
+
+ def interrupt_wait(self, wait_id):
+ if wait_id in self.wait_ids:
+ action_or_wait = self.wait_ids[wait_id]
+ del(self.wait_ids[wait_id])
+ if isinstance(action_or_wait, Action):
+ action_or_wait.interrupt()
+ else:
+ action_or_wait.set()