cli player agent added

This commit is contained in:
2026-08-27 17:10:33 +02:00
parent 87cb67cf87
commit 344be19521
10 changed files with 896 additions and 624 deletions
+12 -3
View File
@@ -44,7 +44,9 @@ flowchart TB
Audio[racket-audio<br/>local backend]
Discovery[racket-upnp + racket-sonos<br/>device discovery]
DLNA[racket-audio-dlna<br/>network backend and media server]
Agent[player-agent.rkt<br/>polling Windows renderer]
AgentGUI[private/player-agent-gui.rkt<br/>GUI adapter]
AgentCLI[player-agent-cli.rkt<br/>CLI adapter]
AgentCore[private/player-agent-core.rkt<br/>polling and audio runtime]
Main --> Server
Main --> Player
@@ -56,8 +58,10 @@ flowchart TB
Player --> Audio
Player --> Discovery
Player --> DLNA
Agent --> Server
Agent --> Audio
AgentGUI --> AgentCore
AgentCLI --> AgentCore
AgentCore --> Server
AgentCore --> Audio
```
### 3.1 Entrypoint and lifecycle
@@ -327,6 +331,11 @@ INI allowlist. Media URLs additionally contain an opaque per-track token. The
random application ID therefore acts as a shared bearer credential, but must
not be treated as strong authentication when transported over unencrypted HTTP.
The GUI and CLI playback agents share one headless runtime. The GUI only adapts
configuration and state to widgets. Optional tray integration is loaded
dynamically through SDL3, so CLI use and the default GUI installation do not
acquire a mandatory SDL dependency.
The configured library roots define the intended filesystem boundary. Clients
operate on opaque indexes instead of sending paths directly. The DLNA backend
must make a selected local file reachable by the network renderer, so its media