branch: elpa/subed commit 9557ba915bd04bf2de5395f2b398131b4b48ff80 Author: Random User <rnd...@posteo.de> Commit: Random User <rnd...@posteo.de>
Standardize/Rename subtitle loop functions All the other optional features have enable/disable/toggle functions, but the looping feature had enable/disable functions missing. I've also renamed the functions to make it clearer what they do. --- subed/subed-common.el | 43 ++++++++++++++++++++++++++++++------------- subed/subed-config.el | 2 +- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/subed/subed-common.el b/subed/subed-common.el index 54f53f6..35461dd 100644 --- a/subed/subed-common.el +++ b/subed/subed-common.el @@ -781,28 +781,45 @@ If QUIET is non-nil, do not display a message in the minibuffer." ;;; Loop over single subtitle -(defun subed-subtitle-loop-p () +(defun subed-loop-over-current-subtitle-p () "Whether the player is looping over the current subtitle." (or subed--subtitle-loop-start subed--subtitle-loop-stop)) -(defun subed-toggle-subtitle-loop (&optional quiet) - "Enable or disable looping in player over the current subtitle. +(defun subed-enable-loop-over-current-subtitle (&optional quiet) + "Enable looping over the current subtitle in the player. If QUIET is non-nil, do not display a message in the minibuffer." (interactive) - (if (subed-subtitle-loop-p) - (progn - (remove-hook 'subed-mpv-playback-position-hook #'subed--ensure-subtitle-loop :local) - (remove-hook 'subed-subtitle-motion-hook #'subed--set-subtitle-loop :local) - (setq subed--subtitle-loop-start nil - subed--subtitle-loop-stop nil) - (subed-debug "Disabling loop: %s - %s" subed--subtitle-loop-start subed--subtitle-loop-stop) - (unless quiet - (message "Disabled looping"))) + (unless (subed-loop-over-current-subtitle-p) (subed--set-subtitle-loop (subed-subtitle-id)) (add-hook 'subed-mpv-playback-position-hook #'subed--ensure-subtitle-loop :append :local) (add-hook 'subed-subtitle-motion-hook #'subed--set-subtitle-loop :append :local) - (subed-debug "Enabling loop: %s - %s" subed--subtitle-loop-start subed--subtitle-loop-stop))) + (subed-debug "Enabling loop: %s - %s" subed--subtitle-loop-start subed--subtitle-loop-stop) + (unless quiet + (message "Enabled looping over current subtitle")))) + +(defun subed-disable-loop-over-current-subtitle (&optional quiet) + "Disable looping over the current subtitle in the player. + +If QUIET is non-nil, do not display a message in the minibuffer." + (interactive) + (when (subed-loop-over-current-subtitle-p) + (remove-hook 'subed-mpv-playback-position-hook #'subed--ensure-subtitle-loop :local) + (remove-hook 'subed-subtitle-motion-hook #'subed--set-subtitle-loop :local) + (setq subed--subtitle-loop-start nil + subed--subtitle-loop-stop nil) + (subed-debug "Disabling loop: %s - %s" subed--subtitle-loop-start subed--subtitle-loop-stop) + (unless quiet + (message "Disabled looping over current subtitle")))) + +(defun subed-toggle-loop-over-current-subtitle (&optional quiet) + "Enable or disable looping over the current subtitle in the player. + +If QUIET is non-nil, do not display a message in the minibuffer." + (interactive) + (if (subed-loop-over-current-subtitle-p) + (subed-disable-loop-over-current-subtitle quiet) + (subed-enable-loop-over-current-subtitle quiet))) (defun subed--set-subtitle-loop (&optional sub-id) "Set loop positions to start/stop time of SUB-ID or current subtitle." diff --git a/subed/subed-config.el b/subed/subed-config.el index 7833d59..57af80b 100644 --- a/subed/subed-config.el +++ b/subed/subed-config.el @@ -61,7 +61,7 @@ (define-key subed-mode-map (kbd "C-c C-d") #'subed-toggle-debugging) (define-key subed-mode-map (kbd "C-c C-v") #'subed-mpv-find-video) (define-key subed-mode-map (kbd "C-c C-p") #'subed-toggle-pause-while-typing) - (define-key subed-mode-map (kbd "C-c C-l") #'subed-toggle-subtitle-loop) + (define-key subed-mode-map (kbd "C-c C-l") #'subed-toggle-loop-over-current-subtitle) (define-key subed-mode-map (kbd "C-c C-r") #'subed-toggle-replay-adjusted-subtitle) (define-key subed-mode-map (kbd "C-c [") #'subed-copy-player-pos-to-start-time) (define-key subed-mode-map (kbd "C-c ]") #'subed-copy-player-pos-to-stop-time)