From 10f72136583171e38d4e4af018b54176e8fbd839 Mon Sep 17 00:00:00 2001 From: Rudis Muiznieks Date: Wed, 28 Dec 2022 10:14:33 -0600 Subject: [PATCH] starting on music player --- plugin/music/__init__.py | 22 ++++++++++++++++++++++ plugin/music/player.py | 13 +++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 plugin/music/player.py diff --git a/plugin/music/__init__.py b/plugin/music/__init__.py index e69de29..1ff41d1 100644 --- a/plugin/music/__init__.py +++ b/plugin/music/__init__.py @@ -0,0 +1,22 @@ +from os import path, listdir +from menu import Menu, MenuItem, MenuType +from cinput import ControlInput +from graphics import Graphics +from .player import MusicPlayer + +def execute(cinput: ControlInput, graphics: Graphics, directory: str): + current_dir = path.join("/home/rudism", directory) + top_menu = create_directory_menu(current_dir, "music") + menu = Menu(top_menu.data["sub_dir"], cinput, graphics) + MusicPlayer(cinput, graphics, menu).run() + +def create_directory_menu(directory: str, dirname: str): + sub_menu = list() + for fname in listdir(directory): + new_path = path.join(directory, fname) + if path.isdir(new_path): + sub_menu.append(create_directory_menu(new_path, fname)) + if len(sub_menu) > 0: + return MenuItem(dirname, MenuType.SUB_MENU, {"sub_menu": sub_menu}) + else: + return MenuItem(dirname, MenuType.CMD, {"directory": directory}) diff --git a/plugin/music/player.py b/plugin/music/player.py new file mode 100644 index 0000000..23fc945 --- /dev/null +++ b/plugin/music/player.py @@ -0,0 +1,13 @@ +from menu import Menu +from cinput import ControlInput +from graphics import Graphics + +class MusicPlayer: + def __init__(self, cinput: ControlInput, graphics: Graphics, menu: Menu): + self._cinput = cinput + self._graphics = graphics + self._menu = menu + + def run(self): + while True: + self._menu.get_selection()