aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 :]