Initial import

This commit is contained in:
2026-07-15 18:00:11 +02:00
parent 02d961e53d
commit c6954f5109
29 changed files with 3062 additions and 2 deletions
+33
View File
@@ -0,0 +1,33 @@
#lang scribble/manual
@(require (for-label racket/base
(file "../main.rkt")
(file "../media-renderer.rkt")
(file "../media-server.rkt")
(file "../services/av-transport.rkt")
(file "../services/rendering-control.rkt")
(file "../services/connection-manager.rkt")
(file "../services/content-directory.rkt")))
@title{Introduction}
The @racketmodname[racket-upnp] collection implements a small UPnP control
point. It discovers devices with SSDP, downloads their device descriptions,
and represents devices and services as ordinary Racket values. Unknown
vendor-specific device and service types are retained instead of discarded.
The public interface is divided into layers:
@itemlist[
@item{The @racketmodname[racket-upnp] module provides discovery, device
information, generic service inspection, and generic SOAP calls.}
@item{Modules in the @tt{racket-upnp/services} subcollection provide
typed interfaces for standard UPnP services.}
@item{The @racketmodname[racket-upnp/media-renderer] and
@racketmodname[racket-upnp/media-server] modules provide convenient
device-oriented interfaces.}
]
A normal application can use the device-oriented modules without dealing with
SSDP, SOAP, service control URLs, or DIDL-Lite XML directly. The generic layer
remains available for inspection and vendor-specific extensions.