Download timeouts

This commit is contained in:
2026-10-21 23:21:37 +02:00
parent 106800b257
commit e751e1e17c
5 changed files with 141 additions and 10 deletions
+46
View File
@@ -95,6 +95,9 @@
(playback-message #f)
(playback-details #f)
(playback-filename #f)
(download-panel #f)
(download-message #f)
(download-gauge #f)
(name-field #f)
(server-field #f)
(connect-button #f)
@@ -163,6 +166,7 @@
(when (and playback-message playback-details playback-filename)
(let* ((snapshot ((player-agent-runtime-snapshot runtime)))
(track ((player-agent-runtime-current-track runtime)))
(download (hash-ref snapshot 'download 'null))
(state (hash-ref snapshot 'state "stopped"))
(title (and track (hash-ref track 'title #f)))
(artist (and track (hash-ref track 'artist #f)))
@@ -210,6 +214,31 @@
(not (string=? format-name "")))
format-name
"")))))
(when download-panel
(send download-panel show (hash? download))
(when (hash? download)
(let* ((received (hash-ref download 'received))
(total (hash-ref download 'total))
(known-size? (and (number? total) (> total 0)))
(percent (if known-size?
(min 100 (quotient (* received 100) total))
0))
(megabytes
(~r (/ received 1000000.0) #:precision '(= 1))))
(send download-gauge show known-size?)
(send download-gauge set-value percent)
(send download-message set-label
(cap200
(format "~a: ~a~a — ~a"
(tr 'downloading)
megabytes
(if known-size?
(format " / ~a MB (~a%)"
(~r (/ total 1000000.0)
#:precision '(= 1))
percent)
" MB")
(hash-ref download 'filename)))))))
(send playback-message
set-label
(cap200
@@ -385,6 +414,23 @@
(parent playback-panel)
(label "—")
[ellipsis 'right] [auto-resize #t] [stretchable-width #t]))
(set! download-panel
(new vertical-panel%
(parent playback-panel)
(alignment '(left top))
(stretchable-height #f)))
(set! download-message
(new ellipsis-msg%
(parent download-panel)
(label "")
[ellipsis 'right] [auto-resize #t] [stretchable-width #t]))
(set! download-gauge
(new gauge%
(parent download-panel)
(label #f)
(range 100)
(stretchable-width #t)))
(send download-panel show #f)
(set! quit-button
(new button%
(parent controls)