From: Ismaƫl Bouya Date: Sat, 16 Jul 2016 15:03:24 +0000 (+0200) Subject: Add option to list /select sound devices X-Git-Tag: 1.0.0~55 X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FProjets%2FPython%2FMusicSampler.git;a=commitdiff_plain;h=29ce1fde0f09285279996a1d7e94c9bea137e0fd Add option to list /select sound devices --- diff --git a/helpers/__init__.py b/helpers/__init__.py index 2339b9b..4b9529d 100644 --- a/helpers/__init__.py +++ b/helpers/__init__.py @@ -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: