Complete refactoring for rktplayer, in order to make it play on DLNA renderers and also use UpNP media server resources.
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
#lang racket/base
|
||||
|
||||
(require racket/class
|
||||
"media-item.rkt")
|
||||
|
||||
(provide media-container%)
|
||||
|
||||
;; A media container contains media-item% instances. An item can itself be
|
||||
;; another media-container%, or it can be a track<%>.
|
||||
(define media-container%
|
||||
(class media-item%
|
||||
(init [id #f])
|
||||
|
||||
(super-new
|
||||
[id id]
|
||||
[kind 'container])
|
||||
|
||||
(abstract
|
||||
get-title
|
||||
get-items
|
||||
get-track-reliver)))
|
||||
|
||||
(module+ test
|
||||
(require rackunit)
|
||||
|
||||
(define track-reliver
|
||||
(lambda (track-factory-id track-relive-info)
|
||||
(list track-factory-id track-relive-info)))
|
||||
|
||||
(define test-container%
|
||||
(class media-container%
|
||||
(super-new [id 'container-id])
|
||||
|
||||
(define/override (get-title)
|
||||
"Container")
|
||||
|
||||
(define/override (get-items)
|
||||
'())
|
||||
|
||||
(define/override (get-track-reliver)
|
||||
track-reliver)))
|
||||
|
||||
(define container
|
||||
(new test-container%))
|
||||
|
||||
(check-equal? (send container get-id) 'container-id)
|
||||
(check-equal? (send container get-kind) 'container)
|
||||
(check-eq? (send container get-container) container)
|
||||
(check-false (send container get-track))
|
||||
(check-equal? (send container get-title) "Container")
|
||||
(check-equal? (send container get-items) '())
|
||||
(check-eq? (send container get-track-reliver) track-reliver))
|
||||
Reference in New Issue
Block a user