multi player / per user playing and translation

This commit is contained in:
2026-08-28 16:53:05 +02:00
parent 2743dfb4c0
commit e10f2cf7d7
17 changed files with 1432 additions and 482 deletions
+22 -19
View File
@@ -9,7 +9,8 @@
simple-log
"player-agent-config.rkt"
"player-agent-core.rkt"
"player-agent-tray.rkt")
"player-agent-tray.rkt"
"translate.rkt")
(provide run-player-agent-gui)
@@ -69,7 +70,7 @@
(define (show-denial! message)
(queue-callback
(lambda ()
(message-box "Playback agent niet toegestaan"
(message-box (tr 'denied-title)
message
frame
'(ok stop)))
@@ -97,13 +98,13 @@
((and artist (not (string=? artist "")) title)
(format "~a — ~a" artist title))
(title title)
(else "Geen track geselecteerd")))
(else (tr 'no-track-selected))))
(define prefix
(cond
((string=? state "playing") "Speelt")
((string=? state "paused") "Gepauzeerd")
((string=? state "starting") "Laden")
((string=? state "stopped") "Gestopt")
((string=? state "playing") (tr 'playing))
((string=? state "paused") (tr 'paused))
((string=? state "starting") (tr 'loading))
((string=? state "stopped") (tr 'stopped))
(else state)))
(define position (hash-ref snapshot 'position 0))
(define duration (hash-ref snapshot 'duration 'null))
@@ -124,7 +125,7 @@
"")
(if (number? channels)
(format "~a ~a" channels
(if (= channels 1) "kanaal" "kanalen"))
(tr (if (= channels 1) 'channel 'channels)))
"")
(if (and (string? format-name) (not (string=? format-name "")))
format-name
@@ -138,7 +139,7 @@
(format " #~a" track-number)
"")
track-label)
"Er wordt niets afgespeeld"))
(tr 'no-track)))
(send playback-details set-label (string-join details " · "))
(send playback-filename
set-label
@@ -160,7 +161,7 @@
(save-player-agent-config! config)
(send name-field set-value next-name)
((player-agent-runtime-reconnect! runtime) next-server next-name)
(send connect-button set-label "Opnieuw verbinden"))
(send connect-button set-label (tr 'reconnect)))
(define (shutdown!)
(unless shutting-down?
@@ -191,7 +192,7 @@
(set! frame
(new agent-frame%
(label "RKT Web Player Agent")
(label (tr 'app-title))
(width 560)
(height 310)))
(define panel
@@ -199,13 +200,15 @@
(parent frame)
(alignment '(left top))))
(set! server-field
(input-field "RKT Web Player server"
(input-field (tr 'server)
(player-agent-config-server-url config)
panel))
(set! name-field
(input-field "Naam" (player-agent-config-name config) panel))
(input-field (tr 'name) (player-agent-config-name config) panel))
(define id-field
(input-field "Applicatie-ID" (player-agent-config-app-id config) panel))
(input-field (tr 'application-id)
(player-agent-config-app-id config)
panel))
;; Lock the editor, not the native widget. Disabled Windows controls render
;; their label and text poorly on some display configurations.
(send (send id-field get-editor) lock #t)
@@ -213,13 +216,13 @@
(define playback-panel
(new group-box-panel%
(parent panel)
(label "Afspelen")
(label (tr 'playback))
(alignment '(left top))
(stretchable-height #f)))
(set! playback-message
(new message%
(parent playback-panel)
(label "Er wordt niets afgespeeld")
(label (tr 'no-track))
(auto-resize #t)))
(set! playback-details
(new message%
@@ -239,12 +242,12 @@
(set! connect-button
(new button%
(parent controls)
(label "Opslaan en verbinden")
(label (tr 'save-connect))
(callback (lambda (_button _event) (reconnect!)))))
(set! status-message
(new message%
(parent controls)
(label "Verbinden…")
(label (tr 'connecting))
(auto-resize #t)))
(set! playback-timer
@@ -268,5 +271,5 @@
(send frame show #t)
((player-agent-runtime-start! runtime))
(send connect-button set-label "Opnieuw verbinden")
(send connect-button set-label (tr 'reconnect))
frame)