emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/subed 1571de4 070/389: Use prefix arg to set start/stop ti


From: ELPA Syncer
Subject: [nongnu] elpa/subed 1571de4 070/389: Use prefix arg to set start/stop time adjustment
Date: Fri, 3 Dec 2021 10:59:59 -0500 (EST)

branch: elpa/subed
commit 1571de4bbd2337a51e20f66721e8bd2d32da3771
Author: Random User <rndusr@posteo.de>
Commit: Random User <rndusr@posteo.de>

    Use prefix arg to set start/stop time adjustment
---
 subed/subed-config.el   | 19 +++++++++++----
 subed/subed-srt.el      | 63 ++++++++++++++++++++++++++++++++++++-------------
 subed/subed.el          |  8 +++----
 tests/test-subed-srt.el | 42 +++++++++++++++++++++++++--------
 4 files changed, 98 insertions(+), 34 deletions(-)

diff --git a/subed/subed-config.el b/subed/subed-config.el
index daf3742..2f234f0 100644
--- a/subed/subed-config.el
+++ b/subed/subed-config.el
@@ -29,10 +29,10 @@
     (define-key subed-mode-map (kbd "M-p") 'subed-backward-subtitle-text)
     (define-key subed-mode-map (kbd "C-M-a") 'subed-move-to-subtitle-text)
     (define-key subed-mode-map (kbd "C-M-e") 'subed-move-to-subtitle-end)
-    (define-key subed-mode-map (kbd "M-[") 'subed-decrease-start-time-100ms)
-    (define-key subed-mode-map (kbd "M-]") 'subed-increase-start-time-100ms)
-    (define-key subed-mode-map (kbd "M-{") 'subed-decrease-stop-time-100ms)
-    (define-key subed-mode-map (kbd "M-}") 'subed-increase-stop-time-100ms)
+    (define-key subed-mode-map (kbd "M-[") 'subed-decrease-start-time)
+    (define-key subed-mode-map (kbd "M-]") 'subed-increase-start-time)
+    (define-key subed-mode-map (kbd "M-{") 'subed-decrease-stop-time)
+    (define-key subed-mode-map (kbd "M-}") 'subed-increase-stop-time)
     (define-key subed-mode-map (kbd "M-i") 'subed-subtitle-insert)
     (define-key subed-mode-map (kbd "M-k") 'subed-subtitle-kill)
     (define-key subed-mode-map (kbd "M-s") 'subed-sort)
@@ -107,6 +107,17 @@ The first existing file is then passed to 
`subed-open-video'."
   :type 'boolean
   :group 'subed)
 
+(defcustom subed-seconds-adjust 100
+  "Number of milliseconds to add/subtract to subtitle start/stop
+time with `subed-increase-start-time',
+`subed-decrease-start-time', `subed-increase-stop-time' and
+`subed-decrease-stop-time'.
+
+This variable is set if these functions are called with a prefix
+argument.  See `subed-increase-start-time'."
+  :type 'float
+  :group 'subed)
+
 (defcustom subed-playback-speed-while-typing 0.3
   "Video playback speed while the user is editing the buffer.  If
 set to zero or smaller, playback is paused."
diff --git a/subed/subed-srt.el b/subed/subed-srt.el
index 15a1f71..21f21f8 100644
--- a/subed/subed-srt.el
+++ b/subed/subed-srt.el
@@ -317,25 +317,56 @@ Return point or nil if there is no previous subtitle."
       (let ((sub-id (subed-srt--subtitle-id)))
         (run-hook-with-args 'subed-subtitle-time-adjusted-hook sub-id 
msecs-new)))))
 
-(defun subed-srt-increase-start-time-100ms ()
-  "Add 100 milliseconds to start time of current subtitle."
-  (interactive)
-  (subed-srt--adjust-subtitle-start-relative 100))
+(defun subed-srt--get-adjust-time (arg)
+  "Set `subed-seconds-adjust' to `arg' if it's a number.  If
+`arg' is non-nil, reset `subed-seconds-adjust' to its default."
+  (subed-debug "arg: %S (%S)" arg (type-of arg))
+  (cond ((integerp arg)
+          (setq subed-seconds-adjust arg))                    ;; Custom 
adjustment
+        ((not (eq nil arg))
+         (custom-reevaluate-setting 'subed-seconds-adjust)))  ;; Reset to 
default
+  subed-seconds-adjust)
+
+(defun subed-srt-increase-start-time (&optional arg)
+  "Add `subed-seconds-adjust' milliseconds to start time of current subtitle.
+
+`subed-seconds-adjust' is set to the value of a numerical prefix
+argument if provided.  If the prefix argument is not numerical,
+`subed-seconds-adjust' is reset to it's default value.
+
+Example usage:
+  \\[universal-argument] 1000 \\[subed-increase-start-time]  Increase start 
time by 1000ms
+           \\[subed-increase-start-time]  Increase start time by 1000ms again
+         [...]  [...]
+   \\[universal-argument] 500 \\[subed-increase-start-time]  Increase start 
time by 500ms
+           \\[subed-increase-start-time]  Increase start time by 500ms again
+         [...]  [...]
+       \\[universal-argument] \\[subed-increase-start-time]  Increase start 
time by 100ms
+           \\[subed-increase-start-time]  Increase start time by 100ms again
+         [...]  [...]"
+  (interactive "P")
+  (subed-srt--adjust-subtitle-start-relative (subed-srt--get-adjust-time arg)))
 
-(defun subed-srt-decrease-start-time-100ms ()
-  "Subtract 100 milliseconds from start time of current subtitle."
-  (interactive)
-  (subed-srt--adjust-subtitle-start-relative -100))
+(defun subed-srt-decrease-start-time (&optional arg)
+  "Subtract `subed-seconds-adjust' milliseconds from start time of current 
subtitle.
 
-(defun subed-srt-increase-stop-time-100ms ()
-  "Add 100 milliseconds to stop time of current subtitle."
-  (interactive)
-  (subed-srt--adjust-subtitle-stop-relative 100))
+See also `subed-increase-start-time'."
+  (interactive "P")
+  (subed-srt--adjust-subtitle-start-relative (* -1 (subed-srt--get-adjust-time 
arg))))
 
-(defun subed-srt-decrease-stop-time-100ms ()
-  "Subtract 100 milliseconds from stop time of current subtitle."
-  (interactive)
-  (subed-srt--adjust-subtitle-stop-relative -100))
+(defun subed-srt-increase-stop-time (&optional arg)
+  "Add `subed-seconds-adjust' milliseconds to stop time of current subtitle.
+
+See also `subed-increase-start-time'."
+  (interactive "P")
+  (subed-srt--adjust-subtitle-stop-relative (subed-srt--get-adjust-time arg)))
+
+(defun subed-srt-decrease-stop-time (&optional arg)
+  "Subtract `subed-seconds-adjust' milliseconds from stop time of current 
subtitle.
+
+See also `subed-increase-start-time'."
+  (interactive "P")
+  (subed-srt--adjust-subtitle-stop-relative (* -1 (subed-srt--get-adjust-time 
arg))))
 
 (defun subed-srt-subtitle-insert (arg)
   "Insert subtitle(s).
diff --git a/subed/subed.el b/subed/subed.el
index dd58645..d09987f 100644
--- a/subed/subed.el
+++ b/subed/subed.el
@@ -53,10 +53,10 @@
 (fset 'subed-forward-subtitle-time-stop 'subed-srt-forward-subtitle-time-stop)
 (fset 'subed-backward-subtitle-time-stop 
'subed-srt-backward-subtitle-time-stop)
 
-(fset 'subed-increase-start-time-100ms 'subed-srt-increase-start-time-100ms)
-(fset 'subed-decrease-start-time-100ms 'subed-srt-decrease-start-time-100ms)
-(fset 'subed-increase-stop-time-100ms 'subed-srt-increase-stop-time-100ms)
-(fset 'subed-decrease-stop-time-100ms 'subed-srt-decrease-stop-time-100ms)
+(fset 'subed-increase-start-time 'subed-srt-increase-start-time)
+(fset 'subed-decrease-start-time 'subed-srt-decrease-start-time)
+(fset 'subed-increase-stop-time 'subed-srt-increase-stop-time)
+(fset 'subed-decrease-stop-time 'subed-srt-decrease-stop-time)
 
 (fset 'subed-subtitle-insert 'subed-srt-subtitle-insert)
 (fset 'subed-subtitle-kill 'subed-srt-subtitle-kill)
diff --git a/tests/test-subed-srt.el b/tests/test-subed-srt.el
index 8386f05..46aebbf 100644
--- a/tests/test-subed-srt.el
+++ b/tests/test-subed-srt.el
@@ -591,39 +591,61 @@ Baz.
                 (add-hook 'subed-subtitle-time-adjusted-hook 'foo)
                 (with-temp-buffer
                   (insert mock-srt-data)
-                  (subed-srt-increase-start-time-100ms)
+                  (subed-srt-increase-start-time)
                   (expect 'foo :to-have-been-called-with 3 183556)
                   (expect 'foo :to-have-been-called-times 1)
                   (subed-srt-move-to-subtitle-id 1)
-                  (subed-srt-increase-stop-time-100ms)
+                  (subed-srt-increase-stop-time)
                   (expect 'foo :to-have-been-called-with 1 65223)
                   (expect 'foo :to-have-been-called-times 2)
                   (subed-srt-move-to-subtitle-end 2)
-                  (subed-srt-decrease-start-time-100ms)
+                  (subed-srt-decrease-start-time)
                   (expect 'foo :to-have-been-called-with 2 122134)
                   (expect 'foo :to-have-been-called-times 3)
                   (subed-srt-move-to-subtitle-text 3)
-                  (subed-srt-decrease-stop-time-100ms)
+                  (subed-srt-decrease-stop-time)
                   (expect 'foo :to-have-been-called-with 3 195467)
                   (expect 'foo :to-have-been-called-times 4))))
           (it "adjusts the start/stop time."
               (with-temp-buffer
                 (insert mock-srt-data)
                 (subed-srt-move-to-subtitle-id 1)
-                (subed-srt-increase-start-time-100ms)
+                (subed-srt-increase-start-time)
                 (expect (save-excursion (subed-srt-move-to-subtitle-time-start)
                                         (thing-at-point 'line)) :to-equal 
"00:01:01,100 --> 00:01:05,123\n")
-                (subed-srt-decrease-start-time-100ms)
-                (subed-srt-decrease-start-time-100ms)
+                (subed-srt-decrease-start-time)
+                (subed-srt-decrease-start-time)
                 (expect (save-excursion (subed-srt-move-to-subtitle-time-start)
                                         (thing-at-point 'line)) :to-equal 
"00:01:00,900 --> 00:01:05,123\n")
-                (subed-srt-increase-stop-time-100ms)
-                (subed-srt-increase-stop-time-100ms)
+                (subed-srt-increase-stop-time)
+                (subed-srt-increase-stop-time)
                 (expect (save-excursion (subed-srt-move-to-subtitle-time-start)
                                         (thing-at-point 'line)) :to-equal 
"00:01:00,900 --> 00:01:05,323\n")
-                (subed-srt-decrease-stop-time-100ms)
+                (subed-srt-decrease-stop-time)
                 (expect (save-excursion (subed-srt-move-to-subtitle-time-start)
                                         (thing-at-point 'line)) :to-equal 
"00:01:00,900 --> 00:01:05,223\n")))
+          (it "sets the number of seconds when given an argument."
+              (with-temp-buffer
+                (insert mock-srt-data)
+                (subed-srt-move-to-subtitle-id 1)
+                (subed-srt-increase-start-time 200)
+                (subed-srt-increase-start-time)
+                (subed-srt-increase-start-time)
+                (expect (save-excursion (subed-srt-move-to-subtitle-time-start)
+                                        (thing-at-point 'line)) :to-equal 
"00:01:01,600 --> 00:01:05,123\n")
+                (subed-srt-decrease-start-time 50)
+                (subed-srt-decrease-start-time)
+                (expect (save-excursion (subed-srt-move-to-subtitle-time-start)
+                                        (thing-at-point 'line)) :to-equal 
"00:01:01,500 --> 00:01:05,123\n")
+                (subed-srt-decrease-stop-time 1000)
+                (subed-srt-decrease-stop-time)
+                (subed-srt-decrease-stop-time)
+                (expect (save-excursion (subed-srt-move-to-subtitle-time-start)
+                                        (thing-at-point 'line)) :to-equal 
"00:01:01,500 --> 00:01:02,123\n")
+                (subed-srt-increase-stop-time 2000)
+                (subed-srt-increase-stop-time)
+                (expect (save-excursion (subed-srt-move-to-subtitle-time-start)
+                                        (thing-at-point 'line)) :to-equal 
"00:01:01,500 --> 00:01:06,123\n")))
           )
 
 (describe "Killing a subtitle"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]