Better renderer and server support and higher level functions. Seek solutions.
This commit is contained in:
@@ -9,7 +9,9 @@
|
||||
(require racket/list
|
||||
racket/string
|
||||
"device.rkt"
|
||||
"didl-lite.rkt"
|
||||
"query.rkt"
|
||||
"resource-capabilities.rkt"
|
||||
"service.rkt"
|
||||
"services/av-transport.rkt"
|
||||
"services/rendering-control.rkt")
|
||||
@@ -22,9 +24,11 @@
|
||||
media-renderer-model
|
||||
get-media-renderer
|
||||
media-renderer-dlna?
|
||||
media-renderer-play-resource!
|
||||
media-renderer-play-uri!
|
||||
media-renderer-play!
|
||||
media-renderer-next-uri-supported?
|
||||
media-renderer-set-next-resource!
|
||||
media-renderer-set-next-uri!
|
||||
media-renderer-pause!
|
||||
media-renderer-stop!
|
||||
@@ -126,6 +130,43 @@
|
||||
"renderer" (upnp-device-name renderer)))
|
||||
(av-transport-set-next-uri! transport uri #:metadata metadata)))
|
||||
|
||||
(define (resource-metadata uri protocol-info mime-type
|
||||
title artist album genre year track duration size)
|
||||
(didl-lite-audio-item
|
||||
uri
|
||||
#:protocol-info
|
||||
(resolve-dlna-resource-protocol-info
|
||||
uri
|
||||
#:protocol-info protocol-info
|
||||
#:mime-type mime-type)
|
||||
#:title title
|
||||
#:artist artist
|
||||
#:album album
|
||||
#:genre genre
|
||||
#:year year
|
||||
#:track track
|
||||
#:duration duration
|
||||
#:size size))
|
||||
|
||||
(define (media-renderer-set-next-resource!
|
||||
renderer uri
|
||||
#:protocol-info [protocol-info #f]
|
||||
#:mime-type [mime-type #f]
|
||||
#:title [title "Media"]
|
||||
#:artist [artist #f]
|
||||
#:album [album #f]
|
||||
#:genre [genre #f]
|
||||
#:year [year #f]
|
||||
#:track [track #f]
|
||||
#:duration [duration #f]
|
||||
#:size [size #f])
|
||||
(media-renderer-set-next-uri!
|
||||
renderer
|
||||
uri
|
||||
#:metadata
|
||||
(resource-metadata uri protocol-info mime-type
|
||||
title artist album genre year track duration size)))
|
||||
|
||||
;; Start a resource and optionally preload the following resource before
|
||||
;; playback starts. Setting the next URI first gives the renderer the maximum
|
||||
;; amount of time to buffer it.
|
||||
@@ -152,6 +193,25 @@
|
||||
#:metadata next-metadata))
|
||||
(av-transport-play! transport)))
|
||||
|
||||
(define (media-renderer-play-resource!
|
||||
renderer uri
|
||||
#:protocol-info [protocol-info #f]
|
||||
#:mime-type [mime-type #f]
|
||||
#:title [title "Media"]
|
||||
#:artist [artist #f]
|
||||
#:album [album #f]
|
||||
#:genre [genre #f]
|
||||
#:year [year #f]
|
||||
#:track [track #f]
|
||||
#:duration [duration #f]
|
||||
#:size [size #f])
|
||||
(media-renderer-play-uri!
|
||||
renderer
|
||||
uri
|
||||
#:metadata
|
||||
(resource-metadata uri protocol-info mime-type
|
||||
title artist album genre year track duration size)))
|
||||
|
||||
(define (media-renderer-pause! renderer)
|
||||
(av-transport-pause!
|
||||
(required-service 'media-renderer-pause! renderer 'av-transport)))
|
||||
|
||||
Reference in New Issue
Block a user