]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blobdiff - helpers/__init__.py
Remove fonts from directory
[perso/Immae/Projets/Python/MusicSampler.git] / helpers / __init__.py
index 534e168a6898790d66cf1bdba1b88674ba12d3b3..4827e6c1af392acf8614008c1e1d9749e54a0190 100644 (file)
@@ -6,9 +6,43 @@ import math
 import sounddevice as sd
 import logging
 
+from . import sysfont
+
 class Config:
     pass
 
+def find_font(name, style=sysfont.STYLE_NONE):
+    if getattr(sys, 'frozen', False):
+        font = sys._MEIPASS + "/fonts/{}_{}.ttf".format(name, style)
+    else:
+        font = sysfont.get_font(name, style=style)
+        if font is not None:
+            font = font[4]
+    return font
+
+def register_fonts():
+    from kivy.core.text import LabelBase
+
+    ubuntu_regular = find_font("Ubuntu", style=sysfont.STYLE_NORMAL)
+    ubuntu_bold = find_font("Ubuntu", style=sysfont.STYLE_BOLD)
+    symbola = find_font("Symbola")
+
+    if ubuntu_regular is None:
+        error_print("Font Ubuntu regular could not be found, please install it.")
+        sys.exit()
+    if symbola is None:
+        error_print("Font Symbola could not be found, please install it.")
+        sys.exit()
+    if ubuntu_bold is None:
+        warn_print("Font Ubuntu Bold could not be found.")
+
+    LabelBase.register(name="Ubuntu",
+            fn_regular=ubuntu_regular,
+            fn_bold=ubuntu_bold)
+    LabelBase.register(name="Symbola",
+            fn_regular=symbola)
+
+
 def path():
     if getattr(sys, 'frozen', False):
         return sys._MEIPASS + "/"
@@ -33,6 +67,10 @@ def parse_args():
             default="config.yml",
             required=False,
             help="Config file to load")
+    parser.add_argument("-p", "--music-path",
+            default=".",
+            required=False,
+            help="Folder in which to find the music files")
     parser.add_argument("-d", "--debug",
             nargs=0,
             action=DebugModeAction,
@@ -98,6 +136,10 @@ def parse_args():
     Config.channels = args.channels
     Config.sample_width = args.sample_width
     Config.builtin_mixing = args.builtin_mixing
+    if args.music_path.endswith("/"):
+        Config.music_path = args.music_path
+    else:
+        Config.music_path = args.music_path + "/"
 
 class DebugModeAction(argparse.Action):
     def __call__(self, parser, namespace, values, option_string=None):