From 2fb9d7b8e51db8c4b6c7e9edb9c4f8fd66f7ba8b Mon Sep 17 00:00:00 2001 From: csd4ni3l Date: Mon, 30 Jun 2025 18:57:30 +0200 Subject: [PATCH] Add better currently played music controls --- assets/graphics/backwards.png | Bin 0 -> 513 bytes assets/graphics/forward.png | Bin 0 -> 328 bytes assets/graphics/volume.png | Bin 0 -> 671 bytes menus/downloader.py | 2 +- menus/main.py | 167 +++++++++++++++++++++++----------- menus/metadata_viewer.py | 4 +- utils/preload.py | 4 +- 7 files changed, 120 insertions(+), 57 deletions(-) create mode 100644 assets/graphics/backwards.png create mode 100644 assets/graphics/forward.png create mode 100644 assets/graphics/volume.png diff --git a/assets/graphics/backwards.png b/assets/graphics/backwards.png new file mode 100644 index 0000000000000000000000000000000000000000..474efdcfc8d1500a8ced81b7664976df64579685 GIT binary patch literal 513 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lb!2%?AWKXaKagsfPd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F_3-(!i<#~g?oVv z_7YEDSN4}|a=en(4^BPn1PZP8ba4!^IDPfXM&3gP0<909^BmyHaq?|h&@a&AeBOZP z5SL+#2akhR-71d>H#Yh=H5I>Hzw@)T^^|beWxqLNR!s|+6rCz{cZ--QgB+{h!A5n4 z@Qc@HoVEB^Cfi(mZbBRPy9sU8RvrhNlpCcE^|L)HxZuFkC&h7CmtXDF#pgUb^_QnF z&kMRW+py=jLBU~RDW}A)nTk6aLr+AnbDL73x27qeqifo<-rvpppR+d1Trj(aXJ-n~ z*{UV35hW>!C8<`)MX5lF!N|bKRM)^v*VrJ$(Adhz)XLOc+rYrez+l!Cz9JM2x%nxX zX_dG&ygs?@98iM>+=i0O+|=Td#M}ZbdMqK9ym|b_2dGC9q$fB(t)x7$D3zhSyj(9c eFS|H7u^?41zbJk7I~ysWA_h-aKbLh*2~7Zp7pw;W literal 0 HcmV?d00001 diff --git a/assets/graphics/forward.png b/assets/graphics/forward.png new file mode 100644 index 0000000000000000000000000000000000000000..cd6bba21522d86d36cc4f626439cf91dea8694da GIT binary patch literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lb!3HFSk|MSNDb50q$YLP<280h*rdD+Fui3O>8`9x8~`&zpgyleUp_NtAFuv@LQ~9IV62ft8v4j zT-Acb)rZr1*^F|+geUBaJnQi7tQO-T>vjCIWqp6DdY1o~?tPUhMs?@QQulrFD>auU z2V31pjbCpfpjG&-M`~oFd+WH5W!hiu0TP>o5_#ecW zLL>%31q+*KBN9Q>#uJQ+DGUZA{w#LZ9oDrx~J^AZ@XQ+PE3Yk?Wy4$x)TM&P66)PQOh0wFNIO7TVn2Auyc&|&ylhmSNP z&<#vCDc*=c08F}=VdtAM>=V!#gQtK;z&p1-XDFT~(3!HISj-Zz)$qeE_n3h584EQd zumku?^kds#SRb%#aib)kPQ1CB0$!Cw;DE#KIef~nd56Vc&$B?%o`T&lEzc#5nSEN) zPO~4F-Yu!y?ANCI0&A6J$#v5eN&C$H;IPeRe>1(l=qzX?elziu3+iBhp94uNB@!5R zh33rO=CGRCJ*F1}N%JKY?^iPMrX{^Md(iY7Ny}#MHT_n=P)Vm?JMaaVBRPh(Brr?sjVN?>7x2_#egInxKjLzawyPC~L^B|kOU^fISPkfC*DyNd{F5ZZ z=$ykZ)8=t}ADAGS51VY)5RK(b bool | None: if symbol == arcade.key.SPACE: @@ -512,25 +573,25 @@ class Main(arcade.gui.UIView): from menus.settings import Settings arcade.unschedule(self.update_presence) self.ui.clear() - self.window.show_view(Settings(self.pypresence_client, self.current_mode, self.current_music_name, self.current_length, self.current_music_player, self.queue, self.loaded_sounds, self.shuffle)) + self.window.show_view(Settings(self.pypresence_client, self.current_mode, self.current_music_artist, self.current_music_title, self.current_music_path, self.current_length, self.current_music_player, self.queue, self.loaded_sounds, self.shuffle)) def new_tab(self): from menus.new_tab import NewTab arcade.unschedule(self.update_presence) self.ui.clear() - self.window.show_view(NewTab(self.pypresence_client, self.current_mode, self.current_music_name, self.current_length, self.current_music_player, self.queue, self.loaded_sounds, self.shuffle)) + self.window.show_view(NewTab(self.pypresence_client, self.current_mode, self.current_music_artist, self.current_music_title, self.current_music_path, self.current_length, self.current_music_player, self.queue, self.loaded_sounds, self.shuffle)) def add_music(self): from menus.add_music import AddMusic arcade.unschedule(self.update_presence) self.ui.clear() - self.window.show_view(AddMusic(self.pypresence_client, self.current_mode, self.current_music_name, self.current_length, self.current_music_player, self.queue, self.loaded_sounds, self.shuffle)) + self.window.show_view(AddMusic(self.pypresence_client, self.current_mode, self.current_music_artist, self.current_music_title, self.current_music_path, self.current_length, self.current_music_player, self.queue, self.loaded_sounds, self.shuffle)) def downloader(self): from menus.downloader import Downloader arcade.unschedule(self.update_presence) self.ui.clear() - self.window.show_view(Downloader(self.pypresence_client, self.current_mode, self.current_music_name, self.current_length, self.current_music_player, self.queue, self.loaded_sounds, self.shuffle)) + self.window.show_view(Downloader(self.pypresence_client, self.current_mode, self.current_music_artist, self.current_music_title, self.current_music_path, self.current_length, self.current_music_player, self.queue, self.loaded_sounds, self.shuffle)) def reload(self): self.load_content() @@ -545,8 +606,8 @@ class Main(arcade.gui.UIView): self.anchor.detect_focusable_widgets() def update_presence(self, _): - if self.current_music_label.text != "No songs playing" and self.current_music_player: - details = f"Listening to {self.current_music_name}" + if self.current_music_title != "No songs playing" and self.current_music_player: + details = f"Listening to {self.current_music_artist} - {self.current_music_title}" if self.current_music_player.playing: mins, secs = divmod(self.current_length, 60) diff --git a/menus/metadata_viewer.py b/menus/metadata_viewer.py index c3d6682..3acce72 100644 --- a/menus/metadata_viewer.py +++ b/menus/metadata_viewer.py @@ -58,8 +58,8 @@ class MetadataViewer(arcade.gui.UIView): albums = ', '.join(list(self.online_metadata[2].keys())) name = f"{self.file_metadata['artist']} - {self.file_metadata['title']} Metadata" metadata_text = f'''File path: {self.file_path} -File Artist: {self.file_metadata['artist']} -MusicBrainz Artists: {', '.join([artist for artist in self.online_metadata[1]])} +File Artist(s): {self.file_metadata['artist']} +MusicBrainz Artist(s): {', '.join([artist for artist in self.online_metadata[1]])} Title: {self.file_metadata['title']} MusicBrainz ID: {self.online_metadata[0]['musicbrainz_id']} ISRC(s): {', '.join(self.online_metadata[0]['isrc-list']) if self.online_metadata[0]['isrc-list'] else "None"} diff --git a/utils/preload.py b/utils/preload.py index a4512e1..e4e33ab 100644 --- a/utils/preload.py +++ b/utils/preload.py @@ -9,9 +9,10 @@ resume_icon = arcade.load_texture("assets/graphics/resume.png") stop_icon = arcade.load_texture("assets/graphics/stop.png") loop_icon = arcade.load_texture("assets/graphics/loop.png") no_loop_icon = arcade.load_texture("assets/graphics/no_loop.png") - shuffle_icon = arcade.load_texture("assets/graphics/shuffle.png") no_shuffle_icon = arcade.load_texture("assets/graphics/no_shuffle.png") +forward_icon = arcade.load_texture("assets/graphics/forward.png") +backwards_icon = arcade.load_texture("assets/graphics/backwards.png") settings_icon = arcade.load_texture("assets/graphics/settings.png") download_icon = arcade.load_texture("assets/graphics/download.png") @@ -21,3 +22,4 @@ playlist_icon = arcade.load_texture("assets/graphics/playlist.png") files_icon = arcade.load_texture("assets/graphics/files.png") music_icon = arcade.load_texture("assets/graphics/music.png") +volume_icon = arcade.load_texture("assets/graphics/volume.png") \ No newline at end of file