aboutsummaryrefslogtreecommitdiff
path: root/music_sampler
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2016-09-19 15:57:26 +0200
committerIsmaël Bouya <ismael.bouya@normalesup.org>2016-09-19 16:00:43 +0200
commit6dc040edf2f31497d4492c159397c4634037be66 (patch)
tree93da3ca7f67fc3012e3793870c6f6a9b4e96220c /music_sampler
parenta9324e30da6292f53f008f1b827779c7f8e2fcdf (diff)
downloadMusicSampler-6dc040edf2f31497d4492c159397c4634037be66.tar.gz
MusicSampler-6dc040edf2f31497d4492c159397c4634037be66.tar.zst
MusicSampler-6dc040edf2f31497d4492c159397c4634037be66.zip
Add load_all_musics flag and corresponding actions
Diffstat (limited to 'music_sampler')
-rw-r--r--music_sampler/actions/__init__.py2
-rw-r--r--music_sampler/actions/load_music.py12
-rw-r--r--music_sampler/actions/unload_music.py10
-rw-r--r--music_sampler/helpers.py8
4 files changed, 32 insertions, 0 deletions
diff --git a/music_sampler/actions/__init__.py b/music_sampler/actions/__init__.py
index 7c812cb..e0671fe 100644
--- a/music_sampler/actions/__init__.py
+++ b/music_sampler/actions/__init__.py
@@ -1,4 +1,5 @@
1from . import interrupt_wait 1from . import interrupt_wait
2from . import load_music
2from . import pause 3from . import pause
3from . import pause_wait 4from . import pause_wait
4from . import play 5from . import play
@@ -7,6 +8,7 @@ from . import run_command
7from . import seek 8from . import seek
8from . import stop 9from . import stop
9from . import stop_all_actions 10from . import stop_all_actions
11from . import unload_music
10from . import unpause 12from . import unpause
11from . import unpause_wait 13from . import unpause_wait
12from . import volume 14from . import volume
diff --git a/music_sampler/actions/load_music.py b/music_sampler/actions/load_music.py
new file mode 100644
index 0000000..f3e02ba
--- /dev/null
+++ b/music_sampler/actions/load_music.py
@@ -0,0 +1,12 @@
1import threading
2
3def run(action, music=None, **kwargs):
4 for music in action.music_list(music):
5 if not music.is_loaded(allow_substates=True):
6 threading.Thread(name="MSMusicLoad", target=music.load).start()
7
8def description(action, music=None, **kwargs):
9 if music is not None:
10 return "load music « {} » to memory".format(music.name)
11 else:
12 return "load all music to memory"
diff --git a/music_sampler/actions/unload_music.py b/music_sampler/actions/unload_music.py
new file mode 100644
index 0000000..b3de316
--- /dev/null
+++ b/music_sampler/actions/unload_music.py
@@ -0,0 +1,10 @@
1def run(action, music=None, **kwargs):
2 for music in action.music_list(music):
3 if music.is_unloadable():
4 music.unload()
5
6def description(action, music=None, **kwargs):
7 if music is not None:
8 return "unload music « {} » from memory".format(music.name)
9 else:
10 return "unload all music from memory"
diff --git a/music_sampler/helpers.py b/music_sampler/helpers.py
index 9403875..fbd338b 100644
--- a/music_sampler/helpers.py
+++ b/music_sampler/helpers.py
@@ -124,6 +124,13 @@ Configs = {
124 'help_no': _("Don't show warning when focus is lost"), 124 'help_no': _("Don't show warning when focus is lost"),
125 'type': 'boolean' 125 'type': 'boolean'
126 }, 126 },
127 'load_all_musics': {
128 'default': True,
129 'help_yes': _("Load all the musics at launch time (default)"),
130 'help_no': _("Don't load all the musics at launch time (use it if you \
131 have memory problems)"),
132 'type': 'boolean'
133 },
127 'list_devices': { 134 'list_devices': {
128 'help': _("List available sound devices"), 135 'help': _("List available sound devices"),
129 'type': 'action' 136 'type': 'action'
@@ -142,6 +149,7 @@ Configs_order = [
142 'language', 149 'language',
143 'list_devices', 150 'list_devices',
144 'device', 151 'device',
152 'load_all_musics',
145] 153]
146def parse_args(): 154def parse_args():
147 argv = sys.argv[1 :] 155 argv = sys.argv[1 :]