diff --git a/plugin/music/__init__.py b/plugin/music/__init__.py index 7a12775..c3b3c0d 100644 --- a/plugin/music/__init__.py +++ b/plugin/music/__init__.py @@ -26,7 +26,7 @@ def create_directory_menu(directory: str, dirname: str, is_resume: bool): track_menu.append(MenuItem(fname, MenuType.CMD, { "dir": directory, "mode": "single", - "track": fname})) + "track": path.join(directory, fname)})) if len(dir_menu) > 0: return MenuItem(dirname, MenuType.SUB_MENU, {"sub_menu": dir_menu}) else: diff --git a/plugin/music/player.py b/plugin/music/player.py index 5523bf9..294cff0 100644 --- a/plugin/music/player.py +++ b/plugin/music/player.py @@ -1,6 +1,7 @@ from menu import Menu, MenuType from cinput import ControlInput from graphics import Graphics +from mpv import MPV class MusicPlayer: def __init__(self, cinput: ControlInput, graphics: Graphics, menu: Menu): @@ -11,5 +12,26 @@ class MusicPlayer: def run(self): while True: item = self._menu.get_selection() - if item.menu_type == MenuType.BACK: + if item.menu_type == MenuType.CMD: + if item.data["mode"] == "album": + self._play_dir(item.data["dir"], False) + elif item.data["mode"] == "random": + self._play_dir(item.data["dir"], True) + elif item.data["mode"] == "track": + self._play_track(item.data["track"]) + elif item.data["mode"] == "resume": + self._play_resume(item.data["dir"]) + elif item.menu_type == MenuType.BACK: return + + def _play_dir(self, directory: str, random: bool): + return + + def _play_track(self, track: str): + player = MPV() + player.play(track) + player.wait_for_playback() + return + + def _play_resume(self, directory: str): + return