DLNA playback
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
#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))
|
||||
)
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user