From cb7f769f79be2f8626492af942e00247322574ea Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 8 Jan 2026 03:15:00 +0300 Subject: [PATCH] patch player --- screens/media.py | 25 ++++++++++++++++++++----- themes/day.py | 1 + themes/night.py | 1 + 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/screens/media.py b/screens/media.py index 7b8b762..5661f38 100644 --- a/screens/media.py +++ b/screens/media.py @@ -40,9 +40,14 @@ class MediaScreen(QWidget): self.artist.setObjectName("MediaArtist") self.artist.setFont(QFont("", 16, 600)) + self.album = QLabel("Альбом") + self.album.setObjectName("MediaAlbum") + self.album.setFont(QFont("", 14, 600)) + info_col.addWidget(self.source) info_col.addWidget(self.title) info_col.addWidget(self.artist) + info_col.addWidget(self.album) info_col.addStretch(1) cover = QLabel("COVER") @@ -89,10 +94,10 @@ class MediaScreen(QWidget): btn_prev.setFixedSize(QSize(72, 72)) btn_prev.clicked.connect(self._prev) - btn_play = QPushButton("▶") - btn_play.setObjectName("MediaTransportBtnPrimary") - btn_play.setFixedSize(QSize(96, 72)) - btn_play.clicked.connect(self._toggle_play) + self.btn_play = QPushButton("▶") + self.btn_play.setObjectName("MediaTransportBtnPrimary") + self.btn_play.setFixedSize(QSize(96, 72)) + self.btn_play.clicked.connect(self._toggle_play) btn_next = QPushButton("⏭") btn_next.setObjectName("MediaTransportBtn") @@ -101,7 +106,7 @@ class MediaScreen(QWidget): transport.addStretch(1) transport.addWidget(btn_prev) - transport.addWidget(btn_play) + transport.addWidget(self.btn_play) transport.addWidget(btn_next) transport.addStretch(1) @@ -173,9 +178,11 @@ class MediaScreen(QWidget): out = self._run_btctl(["menu player", "show"]) title = None artist = None + album = None source = None position = None duration = None + status = None for line in out.splitlines(): if "Name:" in line: source = line.split("Name:", 1)[1].strip() @@ -183,14 +190,20 @@ class MediaScreen(QWidget): title = line.split("Track.Title:", 1)[1].strip() if "Track.Artist:" in line: artist = line.split("Track.Artist:", 1)[1].strip() + if "Track.Album:" in line: + album = line.split("Track.Album:", 1)[1].strip() if "Position:" in line: position = self._parse_hex_value(line) if "Track.Duration:" in line: duration = self._parse_hex_value(line) + if "Status:" in line: + status = line.split("Status:", 1)[1].strip() if title: self.title.setText(title) if artist: self.artist.setText(artist) + if album: + self.album.setText(album) if source: self.source.setText(f"Источник: {source}") if duration is not None and duration > 0: @@ -199,6 +212,8 @@ class MediaScreen(QWidget): if position is not None: self.progress.setValue(position) self.time_pos.setText(self._format_time(position)) + if status: + self.btn_play.setText("⏸" if status == "playing" else "▶") def _run_btctl(self, commands: list[str]) -> str: script = "\n".join(commands + ["back", "quit"]) + "\n" diff --git a/themes/day.py b/themes/day.py index 42a7d24..35ddcd2 100644 --- a/themes/day.py +++ b/themes/day.py @@ -62,6 +62,7 @@ QWidget { background: #F4F6F8; color: #111827; } #MediaSource { color: rgba(107,114,128,0.95); } #MediaTitle { color: #111827; } #MediaArtist { color: rgba(55,65,81,0.95); } +#MediaAlbum { color: rgba(107,114,128,0.95); } #MediaCover { background: #FFFFFF; border: 1px solid #E5E7EB; diff --git a/themes/night.py b/themes/night.py index c6cd67c..c5b5b4e 100644 --- a/themes/night.py +++ b/themes/night.py @@ -57,6 +57,7 @@ QWidget { background: #0B0E11; color: #E6EAF0; } #MediaSource { color: rgba(138,147,166,0.95); } #MediaTitle { color: #E6EAF0; } #MediaArtist { color: rgba(200,208,222,0.95); } +#MediaAlbum { color: rgba(138,147,166,0.95); } #MediaCover { background: #141A22; border: 1px solid #1B2330;