]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/commitdiff
Add option to list /select sound devices
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Sat, 16 Jul 2016 15:03:24 +0000 (17:03 +0200)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Sat, 16 Jul 2016 15:03:24 +0000 (17:03 +0200)
helpers/__init__.py

index 2339b9ba7852318d043abf45373a3a38f089089c..4b9529dc8b64b2b7869bb07c5c7b62135c391270 100644 (file)
@@ -3,6 +3,7 @@ import argparse
 import sys
 import os
 import math
+import sounddevice as sd
 
 class Config:
     def __init__(self, **kwargs):
@@ -37,6 +38,15 @@ def parse_args():
             action="version",
             help="Displays the current version and exits. Only use in bundled package",
             version=show_version())
+    parser.add_argument("--device",
+            action=SelectDeviceAction,
+            help="Select this sound device"
+            )
+    parser.add_argument("--list-devices",
+            nargs=0,
+            action=ListDevicesAction,
+            help="List available sound devices"
+            )
     parser.add_argument('--',
             dest="args",
             help="Kivy arguments. All arguments after this are interpreted by Kivy. Pass \"-- --help\" to get Kivy's usage.")
@@ -44,6 +54,16 @@ def parse_args():
 
     config.yml_file = args.config
 
+class SelectDeviceAction(argparse.Action):
+    def __call__(self, parser, namespace, values, option_string=None):
+        sd.default.device = values
+
+class ListDevicesAction(argparse.Action):
+    nargs = 0
+    def __call__(self, parser, namespace, values, option_string=None):
+        print(sd.query_devices())
+        sys.exit()
+
 def show_version():
     if getattr(sys, 'frozen', False):
         with open(path() + ".pyinstaller_commit", "r") as f: