refactoring
This commit is contained in:
+9
-7
@@ -47,9 +47,9 @@ flowchart TB
|
||||
Audio[racket-audio<br/>local backend]
|
||||
Discovery[racket-upnp + racket-sonos<br/>device discovery]
|
||||
DLNA[racket-audio-dlna<br/>transport, seeking and media publication]
|
||||
AgentGUI[private/player-agent-gui.rkt<br/>GUI adapter]
|
||||
AgentGUI[private-player-agent/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]
|
||||
AgentCore[private-player-agent/player-agent-core.rkt<br/>polling and audio runtime]
|
||||
|
||||
Main --> Server
|
||||
Main --> Player
|
||||
@@ -254,7 +254,8 @@ Italian, Swedish, Norwegian, Finnish and Icelandic with English fallback.
|
||||
Browser preferences select the initial language; a
|
||||
manual selection is stored server-side per username and therefore follows the
|
||||
user across browsers. The native agent uses the equivalent
|
||||
[`private/translate.rkt`](private/translate.rkt) module and the operating-system
|
||||
[`private-player-agent/player-agent-translate.rkt`](private-player-agent/player-agent-translate.rkt)
|
||||
module and the operating-system
|
||||
language.
|
||||
|
||||
DOM signatures prevent rebuilding unchanged library, tab, and playlist
|
||||
@@ -342,10 +343,11 @@ generally performed outside it, with their results committed in short locked
|
||||
sections. Audio callbacks use only the short-lived state lock and update the
|
||||
playback session captured when their backend was created.
|
||||
|
||||
The server module stores the player in a module-level `current-player` variable.
|
||||
This matches the intended one-player-per-process deployment, but it prevents
|
||||
multiple independent player instances from being served safely within the same
|
||||
Racket process.
|
||||
The server module creates one request-dispatcher closure for each `serve-player`
|
||||
call. That closure captures its player and authentication manager and binds them
|
||||
to every HTTP handler. No player or authentication state is stored in module
|
||||
variables, so independent server instances do not overwrite each other's
|
||||
context within the same Racket process.
|
||||
|
||||
## 6. Configuration and deployment
|
||||
|
||||
|
||||
Reference in New Issue
Block a user