ao buffer timing
This commit is contained in:
@@ -351,6 +351,14 @@
|
||||
(define (volume percentage)
|
||||
(set! req-volume percentage))
|
||||
|
||||
(define (ao-buf-ms)
|
||||
(ao-playback-buf-ms))
|
||||
|
||||
(define (ao-buf-ms! ms)
|
||||
(let ((the-ms (if (< ms 50) 50 (if (> ms 1000) 1000 ms))))
|
||||
(ao-set-playback-buf-ms! the-ms)
|
||||
(ao-buf-ms)))
|
||||
|
||||
(define (state msg cb . force)
|
||||
(let ((h (make-hash)))
|
||||
(with-mutex ao-mutex
|
||||
@@ -474,6 +482,12 @@
|
||||
(let ((st #f))
|
||||
(state "'state command" (λ (s) (set! st s)) 'force)
|
||||
st)))
|
||||
((eq? cmd 'ao-buf-ms)
|
||||
(do-rpc
|
||||
(if (null? (cdr data))
|
||||
(list (ao-buf-ms))
|
||||
(list (ao-buf-ms! (cadr data))))
|
||||
))
|
||||
(else
|
||||
(do-rpc
|
||||
(list 'error (format "Unknown command ~a" cmd))))
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
audio-file
|
||||
audio-play?
|
||||
audio-buf-seconds!
|
||||
audio-ao-buf-ms!
|
||||
audio-ao-buf-ms
|
||||
audio-known-exts?
|
||||
)
|
||||
|
||||
@@ -269,6 +271,14 @@
|
||||
(let ((from (if (< min 1) 1 (if (> min 10) 10 min)))
|
||||
(until (if (< max min) (+ min 1) (if (> max 30) 30 max))))
|
||||
((audio-play-rpc handle) 'buf-seconds from until)))
|
||||
|
||||
(define/contract (audio-ao-buf-ms! handle ms)
|
||||
(-> audio-play? integer? (or/c integer? boolean?))
|
||||
((audio-play-rpc handle) 'ao-buf-ms ms))
|
||||
|
||||
(define/contract (audio-ao-buf-ms handle)
|
||||
(-> audio-play? (or/c integer? boolean?))
|
||||
((audio-play-rpc handle) 'ao-buf-ms))
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
;; Playback buffer to send to libao in milliseconds
|
||||
;; -------------------------------------------------------------------------
|
||||
|
||||
(define ao-buf-ms 150) ;; Playback buffer of 0.15s
|
||||
(define ao-buf-ms 350) ;; Playback buffer of 0.35s
|
||||
|
||||
(define (ao-playback-buf-ms)
|
||||
ao-buf-ms)
|
||||
|
||||
Reference in New Issue
Block a user