def run(action, music=None, fade_in=0, start_at=0, restart_if_running=False, volume=100, loop=0, **kwargs): for music in action.music_list(music): if restart_if_running: if music.is_in_use(): music.stop() music.play( volume=volume, fade_in=fade_in, start_at=start_at, loop=loop) elif not music.is_in_use(): music.play( volume=volume, fade_in=fade_in, start_at=start_at, loop=loop) def description(action, music=None, fade_in=0, start_at=0, restart_if_running=False, volume=100, loop=0, **kwargs): message = "starting " if music is not None: message += "« {} »".format(music.name) else: message += "all musics" if start_at != 0: message += " at {}s".format(start_at) if fade_in != 0: message += " with {}s fade_in".format(fade_in) message += " at volume {}%".format(volume) if loop > 0: message += " {} times".format(loop + 1) elif loop < 0: message += " in loop" if restart_if_running: message += " (restarting if already running)" return message