]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blob - music_sampler/actions/play.py
Make music_sampler multilingual
[perso/Immae/Projets/Python/MusicSampler.git] / music_sampler / actions / play.py
1 def run(action, music=None, fade_in=0, start_at=0,
2 restart_if_running=False, volume=100,
3 loop=0, **kwargs):
4 for music in action.music_list(music):
5 if restart_if_running:
6 if music.is_in_use():
7 music.stop()
8 music.play(
9 volume=volume,
10 fade_in=fade_in,
11 start_at=start_at,
12 loop=loop)
13 elif not music.is_in_use():
14 music.play(
15 volume=volume,
16 fade_in=fade_in,
17 start_at=start_at,
18 loop=loop)
19
20 def description(action, music=None, fade_in=0, start_at=0,
21 restart_if_running=False, volume=100, loop=0, **kwargs):
22 formats = []
23 message = "starting "
24 if music is not None:
25 message += "« {} »"
26 formats.append(music.name)
27 else:
28 message += "all musics"
29
30 if start_at != 0:
31 message += " at {}s"
32 formats.append(start_at)
33
34 if fade_in != 0:
35 message += " with {}s fade_in"
36 formats.append(fade_in)
37
38 message += " at volume {}%"
39 formats.append(volume)
40
41 if loop > 0:
42 message += " {} times"
43 formats.append(loop + 1)
44 elif loop < 0:
45 message += " in loop"
46
47 if restart_if_running:
48 message += " (restarting if already running)"
49
50 return _(message).format(*formats)