✨ 🤖 Radio-Player, Icons, Menue-Stabilitaet, Notfall-Stopp, Medientasten #7

Closed
opened 2026-08-24 17:24:18 +02:00 by holm · 1 comment
Owner
Dimension Bewertung Einschätzung
Aufwand ██████░░░░ Mittel-hoch — mehrere Live-Iterationen mit Holm
Nutzen ██████████ Sehr hoch — Radio-Grundfunktion + mehrere Stabilitaetsbugs behoben
Bruchhäufigkeit ███░░░░░░░ Mittel — betraf jede Tray-Menue-Nutzung
Nachhaltigkeit ████████░░ Hoch
Dringlichkeit █████████░ Hoch — Holm musste weg, PCR schliesst die Session

Auftrag (Holm, 2026-08-24, Sammelanfrage)

  1. Radio ueber Tray-Untermenue, bookmarks.json als Senderliste.
  2. Now-Playing-Infos + Gruppierung im Menue (wie radiotray-ng).
  3. Default versteckt starten.
  4. Echte Icons statt Platzhalter (Stopp/Pause/Radio/ABS-Zustand).
  5. Notfall-"Alles stoppen", weil ABS+Radio gleichzeitig liefen.
  6. Medientasten (F4 als Ersatz, keine Hardware-Medientaste vorhanden).
  7. Electrons Standard-Menueleiste weg (blendete sich per Alt ein).

Was gebaut wurde

  • Radio: bookmarks.json-Gruppen als verschachteltes Tray-Untermenue, .m3u/.pls-Playlists werden aufgeloest (sonst spielt z. B. Bassdrive nicht), ICY-Metadaten (Sendername/-beschreibung, live StreamTitle) per eigener HTTP-Verbindung mit Icy-MetaData:1 geparst -- Browser-<audio> reicht sowas nicht durch.
  • Icons: vier Zustaende (assets/icon-{stopped,paused,radio,abs}.png) aus Adwaita/Breeze-Systemthemes gerendert, weiss/transparent (erster Versuch mit farbigem Quadrat-Hintergrund war bei Tray-Groesse nicht erkennbar).
  • Notfall-Stopp: "Alles stoppen" pausiert ABS und Radio unconditional -- togglePlayback allein erreicht immer nur EINE Quelle.
  • Play/Pause-Zielwahl gefixt: togglet jetzt, was tatsaechlich laeuft (live per paused-Abfrage), nicht mehr die radioStation-Markierung -- die blieb nach einem fruehen Radio-Test gesetzt und startete den alten Sender ZUSAETZLICH zu laufendem ABS.
  • Menue-Stabilitaet, zwei Anlaeufe: (1) MenuItem-Mutation auf einem bereits gesetzten Menue schlaegt sich auf diesem Linux/GTK-Tray nicht in die native Darstellung durch -- Holm sah dauerhaft "kein Track" trotz korrektem currentState. (2) Periodischer Voll-Neubau alle 3s riss ein offenes Menue weg. Loesung: Neubau NUR nach eigener Aktion (Sender/Play-Pause/Zeigen) UND bei einer echten state-Transition im Hintergrund-Poll (faengt Netsplit/Fremd-Stop in ABS ab) -- nie beim reinen Tick.
  • Medientasten: MediaPlayPause + F4 global registriert.
  • Menueleiste: win.setMenu(null).

Was in diesem Commit liegt

  • main.js, assets/icon-*.png

🤖 angelegt von Claude v00 (API/Token holm)

| Dimension | Bewertung | Einschätzung | |---|---|---| | Aufwand | `██████░░░░` | Mittel-hoch — mehrere Live-Iterationen mit Holm | | Nutzen | `██████████` | Sehr hoch — Radio-Grundfunktion + mehrere Stabilitaetsbugs behoben | | Bruchhäufigkeit | `███░░░░░░░` | Mittel — betraf jede Tray-Menue-Nutzung | | Nachhaltigkeit | `████████░░` | Hoch | | Dringlichkeit | `█████████░` | Hoch — Holm musste weg, PCR schliesst die Session | ## Auftrag (Holm, 2026-08-24, Sammelanfrage) 1. Radio ueber Tray-Untermenue, `bookmarks.json` als Senderliste. 2. Now-Playing-Infos + Gruppierung im Menue (wie radiotray-ng). 3. Default versteckt starten. 4. Echte Icons statt Platzhalter (Stopp/Pause/Radio/ABS-Zustand). 5. Notfall-"Alles stoppen", weil ABS+Radio gleichzeitig liefen. 6. Medientasten (F4 als Ersatz, keine Hardware-Medientaste vorhanden). 7. Electrons Standard-Menueleiste weg (blendete sich per Alt ein). ## Was gebaut wurde - **Radio**: `bookmarks.json`-Gruppen als verschachteltes Tray-Untermenue, `.m3u`/`.pls`-Playlists werden aufgeloest (sonst spielt z. B. Bassdrive nicht), ICY-Metadaten (Sendername/-beschreibung, live StreamTitle) per eigener HTTP-Verbindung mit `Icy-MetaData:1` geparst -- Browser-`<audio>` reicht sowas nicht durch. - **Icons**: vier Zustaende (`assets/icon-{stopped,paused,radio,abs}.png`) aus Adwaita/Breeze-Systemthemes gerendert, weiss/transparent (erster Versuch mit farbigem Quadrat-Hintergrund war bei Tray-Groesse nicht erkennbar). - **Notfall-Stopp**: "Alles stoppen" pausiert ABS und Radio unconditional -- `togglePlayback` allein erreicht immer nur EINE Quelle. - **Play/Pause-Zielwahl gefixt**: togglet jetzt, was tatsaechlich laeuft (live per `paused`-Abfrage), nicht mehr die `radioStation`-Markierung -- die blieb nach einem fruehen Radio-Test gesetzt und startete den alten Sender ZUSAETZLICH zu laufendem ABS. - **Menue-Stabilitaet, zwei Anlaeufe**: (1) MenuItem-Mutation auf einem bereits gesetzten Menue schlaegt sich auf diesem Linux/GTK-Tray nicht in die native Darstellung durch -- Holm sah dauerhaft "kein Track" trotz korrektem `currentState`. (2) Periodischer Voll-Neubau alle 3s riss ein offenes Menue weg. Loesung: Neubau NUR nach eigener Aktion (Sender/Play-Pause/Zeigen) UND bei einer echten `state`-Transition im Hintergrund-Poll (faengt Netsplit/Fremd-Stop in ABS ab) -- nie beim reinen Tick. - **Medientasten**: `MediaPlayPause` + `F4` global registriert. - **Menueleiste**: `win.setMenu(null)`. ## Was in diesem Commit liegt - `main.js`, `assets/icon-*.png` > 🤖 angelegt von Claude v00 (API/Token holm)
Author
Owner

Erledigt — Commits 6572969 und d2ba421 auf dev gepusht.

Beleg: alle Punkte live mit Holm getestet -- Radio spielt (inkl. Playlist-Aufloesung), Icons sichtbar (Screenshot-Vergleich), Play/Pause togglet korrekt die laufende Quelle, Menue bleibt offen und zeigt korrekte Daten, "Alles stoppen" bestaetigt funktionsfaehig, Menueleiste weg.

🤖 Kommentar von Claude v00 (API/Token holm)

**Erledigt** — Commits [`6572969`](https://forgejo.mueller.network/holm.tools.public/playzen/commit/6572969917c0815380412b6157a4d5c0c2b9bfae) und [`d2ba421`](https://forgejo.mueller.network/holm.tools.public/playzen/commit/d2ba42182bb377d4bf4a33ba4bdf61a06b661f99) auf `dev` gepusht. Beleg: alle Punkte live mit Holm getestet -- Radio spielt (inkl. Playlist-Aufloesung), Icons sichtbar (Screenshot-Vergleich), Play/Pause togglet korrekt die laufende Quelle, Menue bleibt offen und zeigt korrekte Daten, "Alles stoppen" bestaetigt funktionsfaehig, Menueleiste weg. > 🤖 Kommentar von Claude v00 (API/Token holm)
holm closed this issue 2026-08-24 17:26:04 +02:00
Sign in to join this conversation.
No description provided.