[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/listen b3d6dd25bd 5/5: Fix: (listen-queue-delay-mode) C
From: |
ELPA Syncer |
Subject: |
[elpa] externals/listen b3d6dd25bd 5/5: Fix: (listen-queue-delay-mode) Cancel timer when mode canceled |
Date: |
Mon, 4 Mar 2024 15:58:42 -0500 (EST) |
branch: externals/listen
commit b3d6dd25bd33c23f00868d5a7e3ec01184ae5861
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>
Fix: (listen-queue-delay-mode) Cancel timer when mode canceled
---
listen-queue.el | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/listen-queue.el b/listen-queue.el
index 83bfb2aa83..24a0b7fe74 100644
--- a/listen-queue.el
+++ b/listen-queue.el
@@ -716,6 +716,8 @@ MAX-PROCESSES limits the number of parallel probing
processes."
;; When you want music to play periodically, like while playing
;; Minecraft.
+(defvar listen-queue-delay-timer nil)
+
(defcustom listen-queue-delay-time-range '(120 . 600)
"Range of delay in seconds."
:type '(cons (natnum :tag "Minimum delay")
@@ -728,7 +730,9 @@ Delay according to `listen-queue-delay-time-range', which
see."
:global t
(if listen-queue-delay-mode
(advice-add #'listen-play-next :around #'listen-queue-play-next-delayed)
- (advice-remove #'listen-play-next #'listen-queue-play-next-delayed)))
+ (advice-remove #'listen-play-next #'listen-queue-play-next-delayed)
+ (when (timerp listen-queue-delay-timer)
+ (setf listen-queue-delay-timer (cancel-timer
listen-queue-delay-timer)))))
(defun listen-queue-play-next-delayed (oldfun player)
"Call OLDFUN to play PLAYER's queue's next track after a random delay.
@@ -740,7 +744,7 @@ Delay according to `listen-queue-delay-time-range', which
see."
(listen-once-per (listen-queue-next-track queue)
(let ((delay-seconds (max (car listen-queue-delay-time-range)
(random (cdr listen-queue-delay-time-range)))))
- (run-at-time delay-seconds nil oldfun player)))))
+ (setf listen-queue-delay-timer (run-at-time delay-seconds nil oldfun
player))))))
;;;; Footer