Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion run.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
from yami.main import entry
entry()

entry()
11 changes: 7 additions & 4 deletions vlc_.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
import vlc

media=vlc.Media(r"/Users/mith/Music/Music/Media.localized/Music/The Avalanches/Since I Left You (20th Anniversary Deluxe Edition)/1-05 Avalanche Rock.m4a")
player=vlc.MediaPlayer()
media = vlc.Media(
r"/Users/mith/Music/Music/Media.localized/Music/The Avalanches/Since I Left You (20th Anniversary Deluxe Edition)/1-05 Avalanche Rock.m4a"
)
player = vlc.MediaPlayer()
player.set_media(media)
inst: vlc.Instance =player.get_instance()
inst: vlc.Instance = player.get_instance()
player.play()
import time

time.sleep(0.5)
print(media.get_meta(1))
print(media.get_meta(0))


print(media.get_meta(15))
while player.is_playing():
time.sleep(0.5)
time.sleep(0.5)
54 changes: 15 additions & 39 deletions yami/control.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import logging
import customtkinter as ctk
import vlc
from .util import BUTTON_WIDTH, PlayerState
from .util import BUTTON_WIDTH


class ControlBar(ctk.CTkFrame):
Expand All @@ -17,12 +17,11 @@ def __init__(
super().__init__(parent, corner_radius=10, fg_color="#121212")

# SETUP
self.music_player = parent
self.parent = parent
self.pause_icon = parent.pause_icon
self.play_icon = parent.play_icon
self.prev_icon = parent.prev_icon
self.next_icon = parent.next_icon
self.play_next_command = parent.play_next_song
self.title_max_chars = 40

# WIDGETS
Expand All @@ -37,7 +36,7 @@ def __init__(
)
self.next_button = ctk.CTkButton(
self,
command=self.play_next_command,
command=self.parent.play_next_song,
width=BUTTON_WIDTH,
text="",
corner_radius=10,
Expand All @@ -48,7 +47,7 @@ def __init__(
text="",
width=BUTTON_WIDTH,
corner_radius=10,
command=self.play_previous,
command=self.parent.play_previous,
image=self.prev_icon,
)
self.music_title_label = ctk.CTkLabel(
Expand All @@ -72,57 +71,33 @@ def __init__(
self.grid_columnconfigure(4, weight=0)

# PLACEMENT
self.music_title_label.grid(
row=0, column=0, sticky="w", padx=5, pady=10
)
self.music_title_label.grid(row=0, column=0, sticky="w", padx=5, pady=10)
self.playback_label.grid(row=0, column=1, sticky="w", padx=5, pady=10)
self.prev_button.grid(row=0, column=2, sticky="nsew", padx=5, pady=10)
self.play_button.grid(row=0, column=3, sticky="nsew", padx=5, pady=10)
self.next_button.grid(row=0, column=4, sticky="nsew", padx=5, pady=10)
logging.debug("initialized control bar")

def play_pause(self, event=None):
"""Plays Or Pauses The Music"""

if self.music_player.music.get_state() == vlc.State.Playing:
self.music_player.music.pause()
logging.info("paused")
if self.parent.music_list_player.get_state() == vlc.State.Playing:
self.parent.music_list_player.pause()
logging.debug("paused")
else:
self.music_player.music.play()

logging.info("resumed")
self.parent.music_list_player.play()
logging.debug("resumed")
self.update_play_button()

def update_play_button(self):
"""Switches Play/Pause Icon"""

if self.music_player.music.get_state()==vlc.State.Playing:
if self.parent.music_list_player.get_state() == vlc.State.Playing:
self.play_button.configure(image=self.pause_icon)
logging.debug("updated play button to pause")
else:
self.play_button.configure(image=self.play_icon)

def play_previous(self, event=None):
"""Play Previous Song/Goto Last Song"""

if not self.music_player.playlist:
return

# PLAY FROM END
if self.music_player.playlist_index == 0:
logging.info("playing from end")
self.music_player.playlist_index = (
len(self.music_player.playlist) - 1
)
# PLAY PREVIOUS
else:
self.music_player.playlist_index -= 1
logging.info("playing previous")
self.music_player.load_and_play_song(self.music_player.playlist_index)

# UPDATE SELECTION
self.music_player.playlist_frame.song_list.selection_clear(0, tk.END)
self.music_player.playlist_frame.song_list.select_set(
self.music_player.playlist_index
)
logging.debug("updated play button to play")

# TRUNCATOR
def set_music_title(self, title, artist):
Expand All @@ -132,6 +107,7 @@ def set_music_title(self, title, artist):
truncated_title = title[: self.title_max_chars - 3] + "..."
else:
truncated_title = title
logging.debug("truncated title been set to %s", title)
self.music_title_label.configure(
text=truncated_title + " - " + artist.replace("/", ",")
)
2 changes: 2 additions & 0 deletions yami/cover_art.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""Frame For Cover Art"""

import customtkinter as ctk
import logging


class CoverArtFrame(ctk.CTkFrame):
Expand All @@ -22,3 +23,4 @@ def __init__(self, parent):
self.cover_art_label.grid(
sticky="nsew",
)
logging.debug("initialized covert art frame")
5 changes: 4 additions & 1 deletion yami/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,12 @@
"""add sys args and logs"""

logging.getLogger().setLevel(logging.INFO)


def entry():
app = MusicPlayer()
app.mainloop()

if __name__=="__main__":

if __name__ == "__main__":
entry()
Loading
Loading