Files
rktplayer/dlna.rkt
T
2026-07-31 17:03:19 +02:00

41 lines
1.1 KiB
Racket

#lang racket
(require racket-upnp)
(provide check-dlna-players)
(define running-sem (make-semaphore 1))
(define running #f)
(define (check-dlna-players gui)
(let ((can-check (begin
(semaphore-wait running-sem)
(let ((rng running))
(if rng
(begin
(semaphore-post running-sem)
#f)
(begin
(set! running #t)
(semaphore-post running-sem)
#t))))))
(if can-check
(void
(thread
(λ ()
(let ((r (query-media-renderers)))
(let ((r* (map (λ (r)
(list (media-renderer-name r)
r))
r)))
(send gui set-dlna-renderers! r*)
(semaphore-wait running-sem)
(set! running #f)
(semaphore-post running-sem)
)))))
(void
(send gui dlna-query-busy))
)
)
)