summaryrefslogtreecommitdiff
path: root/pypers/marelli/modulo3/runsongs.py
diff options
context:
space:
mode:
Diffstat (limited to 'pypers/marelli/modulo3/runsongs.py')
-rwxr-xr-xpypers/marelli/modulo3/runsongs.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/pypers/marelli/modulo3/runsongs.py b/pypers/marelli/modulo3/runsongs.py
new file mode 100755
index 0000000..743bd33
--- /dev/null
+++ b/pypers/marelli/modulo3/runsongs.py
@@ -0,0 +1,31 @@
+import os, random, threading
+from ms.file_utils import ifiles
+from ms.concurrency import Popen, locked
+
+PLAYER = "mplay32 /play /close".split()
+MUSICDIR = os.environ.get("HOMEPATH", os.environ["HOME"]) + "/Desktop/Music"
+
+songs = list(ifiles(MUSICDIR, lambda f : f.endswith(".mp3")))
+
+def run(func, *args, **kw):
+ threading.Thread(None, func, args=args, kwargs=kw).start()
+
+def gen_songs():
+ for i in range(2):
+ yield random.choice(songs)
+
+def play(song):
+ return Popen(PLAYER + [song])
+
+@locked
+def play_many(user):
+ for song in gen_songs():
+ print user, song
+ player = play(song)
+ player.wait()
+
+if __name__ == "__main__":
+ run(play_many, "user1")
+ run(play_many, "user2")
+ run(play_many, "user3")
+