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,51 @@
|
||||
#lang racket/base
|
||||
|
||||
(require racket/class
|
||||
"../library-cfg.rkt"
|
||||
"../../misc/utils.rkt")
|
||||
|
||||
(provide media-library%)
|
||||
|
||||
(define media-library%
|
||||
(class object%
|
||||
(init-field
|
||||
cfg)
|
||||
|
||||
(check/c media-library%
|
||||
cfg
|
||||
(is-a?/c library-cfg%))
|
||||
|
||||
(define cfg-revision
|
||||
-1)
|
||||
|
||||
(define root-container
|
||||
#f)
|
||||
|
||||
(define/private (reset-if-needed!)
|
||||
(let ((current-revision (send cfg get-revision)))
|
||||
(unless (= cfg-revision current-revision)
|
||||
(set! cfg-revision current-revision)
|
||||
(set! root-container #f))))
|
||||
|
||||
(define/public (get-cfg)
|
||||
cfg)
|
||||
|
||||
(define/public (get-id)
|
||||
(send cfg get-id))
|
||||
|
||||
(define/public (get-kind)
|
||||
(send cfg get-kind))
|
||||
|
||||
(define/public (get-kind-version)
|
||||
(send cfg get-kind-version))
|
||||
|
||||
(define/public (get-root-container)
|
||||
(reset-if-needed!)
|
||||
(when (eq? root-container #f)
|
||||
(set! root-container
|
||||
(send this make-root-container)))
|
||||
root-container)
|
||||
|
||||
(abstract make-root-container)
|
||||
|
||||
(super-new)))
|
||||
Reference in New Issue
Block a user