pause handling
This commit is contained in:
+14
-3
@@ -29,6 +29,7 @@
|
|||||||
(define ct-data #f)
|
(define ct-data #f)
|
||||||
(define closing #f)
|
(define closing #f)
|
||||||
(define pause #f)
|
(define pause #f)
|
||||||
|
(define stop-in-pause 'nil)
|
||||||
(define repeat-state 'no-repeat)
|
(define repeat-state 'no-repeat)
|
||||||
(define volume (send settings get 'volume 100.0))
|
(define volume (send settings get 'volume 100.0))
|
||||||
|
|
||||||
@@ -161,12 +162,17 @@
|
|||||||
(set-state! 'pauzed)
|
(set-state! 'pauzed)
|
||||||
(ao-pause ao-handle #t)
|
(ao-pause ao-handle #t)
|
||||||
(while (and (not (eq? ao-handle #f))
|
(while (and (not (eq? ao-handle #f))
|
||||||
|
(not (eq? stop-in-pause 'stop-request))
|
||||||
(not closing)
|
(not closing)
|
||||||
pause)
|
pause)
|
||||||
(sleep 0.5))
|
(sleep 0.5))
|
||||||
(ao-pause ao-handle #f)
|
(if (eq? stop-in-pause 'stop-request)
|
||||||
(dbg-rktplayer "Playing on...")
|
(set! stop-in-pause 'stop-ack)
|
||||||
(set-state! 'playing)
|
(begin
|
||||||
|
(ao-pause ao-handle #f)
|
||||||
|
(dbg-rktplayer "Playing on...")
|
||||||
|
(set-state! 'playing))
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -241,6 +247,11 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
(define (stop-and-clear)
|
(define (stop-and-clear)
|
||||||
|
(when pause
|
||||||
|
(set! stop-in-pause 'stop-request)
|
||||||
|
(set! pause #f)
|
||||||
|
(while (not (eq? stop-in-pause 'stop-ack))
|
||||||
|
(sleep 0.2)))
|
||||||
(set-state! 'stopped)
|
(set-state! 'stopped)
|
||||||
(close-player*)
|
(close-player*)
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user