X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=helpers%2F__init__.py;h=807aa4403880128ce0d219c4af77364f05f1f2b4;hb=75d6cdbac628b57e206cd37808c1d3c7fecbb9eb;hp=4b9529dc8b64b2b7869bb07c5c7b62135c391270;hpb=22514f3ae6d4e19537ae5ab6bdb5bc9f99a64f47;p=perso%2FImmae%2FProjets%2FPython%2FMusicSampler.git diff --git a/helpers/__init__.py b/helpers/__init__.py index 4b9529d..807aa44 100644 --- a/helpers/__init__.py +++ b/helpers/__init__.py @@ -6,11 +6,7 @@ import math import sounddevice as sd class Config: - def __init__(self, **kwargs): - for arg in kwargs: - setattr(self, arg, kwargs[arg]) - -config = Config(yml_file="config.yml") + pass def path(): if getattr(sys, 'frozen', False): @@ -29,11 +25,37 @@ def parse_args(): sys.argv.extend(kivy_args) - parser = argparse.ArgumentParser(description="A Music Sampler application.") + parser = argparse.ArgumentParser( + description="A Music Sampler application.", + formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument("-c", "--config", default="config.yml", required=False, help="Config file to load") + parser.add_argument("-l", "--latency", + default="high", + required=False, + help="Latency: low, high or number of seconds") + parser.add_argument("-b", "--blocksize", + default=0, + type=int, + required=False, + help="Blocksize: If not 0, the numbe of frames to take at each step for the mixer") + parser.add_argument("-f", "--frame-rate", + default=44100, + type=int, + required=False, + help="Frame rate to play the musics") + parser.add_argument("-x", "--channels", + default=2, + type=int, + required=False, + help="Number of channels to use") + parser.add_argument("-s", "--sample-width", + default=2, + type=int, + required=False, + help="Sample width (number of bytes for each frame)") parser.add_argument("-V", "--version", action="version", help="Displays the current version and exits. Only use in bundled package", @@ -52,7 +74,12 @@ def parse_args(): help="Kivy arguments. All arguments after this are interpreted by Kivy. Pass \"-- --help\" to get Kivy's usage.") args = parser.parse_args(argv) - config.yml_file = args.config + Config.yml_file = args.config + Config.latency = args.latency + Config.blocksize = args.blocksize + Config.frame_rate = args.frame_rate + Config.channels = args.channels + Config.sample_width = args.sample_width class SelectDeviceAction(argparse.Action): def __call__(self, parser, namespace, values, option_string=None): @@ -71,9 +98,6 @@ def show_version(): else: return "option '-v' can only be used in bundled package" -def yml_file(): - return config.yml_file - def duration_to_min_sec(duration): minutes = int(duration / 60) seconds = int(duration) % 60