Download timeouts
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user