Files
racket-upnp/examples/media-server-example.rkt
T
2026-07-15 18:00:11 +02:00

37 lines
1.0 KiB
Racket

#lang racket/base
(require racket/list
"upnp/main.rkt"
"upnp/media-server.rkt")
(define servers
(query-media-servers
#:interface "10.7.3.118"
#:dns? #t))
(for ([server (in-list servers)])
(printf "~a (~a)\n"
(upnp-device-name server)
(upnp-device-address server)))
(when (pair? servers)
(let* ([server (car servers)]
[root (media-server-root server)]
[music
(findf
(lambda (entry)
(and (media-container? entry)
(string=? (media-entry-title entry) "Muziek")))
root)])
(for ([entry (in-list root)])
(printf "~a ~a ~a\n"
(if (media-container? entry) "map " "item")
(or (media-entry-id entry) "")
(media-entry-title entry)))
(when music
(displayln "\nMuziek:")
(for ([entry (in-list (media-container-children server music))])
(printf "~a ~a\n"
(if (media-container? entry) "map " "item")
(media-entry-title entry))))))