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
+31
View File
@@ -0,0 +1,31 @@
#lang scribble/manual
@(require (for-label racket/base
racket/contract
(file "../main.rkt")
(file "../services/rendering-control.rkt")))
@title{RenderingControl}
@defmodule[@racketmodname[racket-upnp/services/rendering-control] #:module-paths ((file "../services/rendering-control.rkt"))]
RenderingControl manages rendering properties such as volume and mute.
@defproc[(device-rendering-control [device upnp-device?]) (or/c #f upnp-service?)]{Returns the device's RenderingControl service.}
@defproc[(rendering-control? [value any/c]) boolean?]{Recognises a RenderingControl service.}
@defproc[(rendering-control-volume [control rendering-control?]
[#:channel channel string? "Master"]
[#:instance-id instance-id exact-nonnegative-integer? 0])
(or/c #f exact-integer?)]{Returns the device-specific UPnP volume value.}
@defproc[(rendering-control-set-volume! [control rendering-control?]
[volume (integer-in 0 65535)]
[#:channel channel string? "Master"]
[#:instance-id instance-id exact-nonnegative-integer? 0])
void?]{Sets the device-specific UPnP volume value. The device's SCPD determines the actual supported maximum.}
@defproc[(rendering-control-muted? [control rendering-control?]
[#:channel channel string? "Master"]
[#:instance-id instance-id exact-nonnegative-integer? 0]) boolean?]{Returns the mute state.}
@defproc[(rendering-control-set-muted! [control rendering-control?]
[muted? boolean?]
[#:channel channel string? "Master"]
[#:instance-id instance-id exact-nonnegative-integer? 0]) void?]{Sets the mute state.}