branch: elpa/subed commit f3fe9d8a342236abb137e3468d70fdaec2fa9b0d Author: Random User <rnd...@posteo.de> Commit: Random User <rnd...@posteo.de>
Make increase/decrease-start/stop-time not srt specific --- subed/subed-srt.el | 39 -------------------- subed/subed.el | 48 ++++++++++++++++++++++--- tests/test-subed-srt.el | 94 ++++++++++++++++++++++++------------------------- 3 files changed, 90 insertions(+), 91 deletions(-) diff --git a/subed/subed-srt.el b/subed/subed-srt.el index 81244c2..dfa837e 100644 --- a/subed/subed-srt.el +++ b/subed/subed-srt.el @@ -338,45 +338,6 @@ Return point or nil if there is no previous subtitle." (replace-match (subed-srt--msecs-to-timestamp msecs-new)))) (subed--run-subtitle-time-adjusted-hook)))) -(defun subed-srt-increase-start-time (&optional arg) - "Add `subed-milliseconds-adjust' milliseconds to start time of current subtitle. - -If a prefix argument is given, it is used to set -`subed-milliseconds-adjust' before moving subtitles. If the -prefix argument is given but not numerical, -`subed-milliseconds-adjust' is reset to its 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 (the default) - \\[subed-increase-start-time] Increase start time by 100ms (the default) again" - (interactive "P") - (subed-srt--adjust-subtitle-start-relative (subed--get-milliseconds-adjust arg))) - -(defun subed-srt-decrease-start-time (&optional arg) - "Subtract `subed-milliseconds-adjust' milliseconds from start time of current subtitle. - -See also `subed-increase-start-time'." - (interactive "P") - (subed-srt--adjust-subtitle-start-relative (* -1 (subed--get-milliseconds-adjust arg)))) - -(defun subed-srt-increase-stop-time (&optional arg) - "Add `subed-milliseconds-adjust' milliseconds to stop time of current subtitle. - -See also `subed-increase-start-time'." - (interactive "P") - (subed-srt--adjust-subtitle-stop-relative (subed--get-milliseconds-adjust arg))) - -(defun subed-srt-decrease-stop-time (&optional arg) - "Subtract `subed-milliseconds-adjust' milliseconds from stop time of current subtitle. - -See also `subed-increase-start-time'." - (interactive "P") - (subed-srt--adjust-subtitle-stop-relative (* -1 (subed--get-milliseconds-adjust arg)))) - (defun subed-srt-subtitle-insert (&optional arg) "Insert subtitle(s). `universal-argument' is used in the following manner: diff --git a/subed/subed.el b/subed/subed.el index 41f8c60..594ea88 100644 --- a/subed/subed.el +++ b/subed/subed.el @@ -64,11 +64,6 @@ (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 '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) (fset 'subed-sanitize 'subed-srt-sanitize) @@ -179,6 +174,49 @@ Before BODY is run, point is placed on the subtitle's ID." (concat string (make-string (- length (length string)) fillchar))) +;;; Adjusting start/stop time individually + +(defun subed-increase-start-time (&optional arg) + "Add `subed-milliseconds-adjust' milliseconds to start time of +current subtitle. + +If a prefix argument is given, it is used to set +`subed-milliseconds-adjust' before moving subtitles. If the +prefix argument is given but not numerical, +`subed-milliseconds-adjust' is reset to its 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 (the default) + \\[subed-increase-start-time] Increase start time by 100ms (the default) again" + (interactive "P") + (subed--adjust-subtitle-start-relative (subed--get-milliseconds-adjust arg))) + +(defun subed-decrease-start-time (&optional arg) + "Subtract `subed-milliseconds-adjust' milliseconds from start +time of current subtitle. +See also `subed-increase-start-time'." + (interactive "P") + (subed--adjust-subtitle-start-relative (* -1 (subed--get-milliseconds-adjust arg)))) + +(defun subed-increase-stop-time (&optional arg) + "Add `subed-milliseconds-adjust' milliseconds to stop time of +current subtitle. +See also `subed-increase-start-time'." + (interactive "P") + (subed--adjust-subtitle-stop-relative (subed--get-milliseconds-adjust arg))) + +(defun subed-decrease-stop-time (&optional arg) + "Subtract `subed-milliseconds-adjust' milliseconds from stop +time of current subtitle. +See also `subed-increase-start-time'." + (interactive "P") + (subed--adjust-subtitle-stop-relative (* -1 (subed--get-milliseconds-adjust arg)))) + + ;;; Moving subtitles (defun subed-move-subtitles (msecs &optional beg end) diff --git a/tests/test-subed-srt.el b/tests/test-subed-srt.el index 9e671f8..3b4004f 100644 --- a/tests/test-subed-srt.el +++ b/tests/test-subed-srt.el @@ -611,71 +611,71 @@ Baz. (add-hook 'subed-subtitle-time-adjusted-hook 'foo) (with-temp-buffer (insert mock-srt-data) - (subed-srt-increase-start-time) + (subed-increase-start-time) (expect 'foo :to-have-been-called-with 3 183550) (expect 'foo :to-have-been-called-times 1) (subed-srt-jump-to-subtitle-id 1) - (subed-srt-increase-stop-time) + (subed-increase-stop-time) (expect 'foo :to-have-been-called-with 1 61000) (expect 'foo :to-have-been-called-times 2) (subed-srt-jump-to-subtitle-end 2) - (subed-srt-decrease-start-time) + (subed-decrease-start-time) (expect 'foo :to-have-been-called-with 2 122134) (expect 'foo :to-have-been-called-times 3) (subed-srt-jump-to-subtitle-text 3) - (subed-srt-decrease-stop-time 100) + (subed-decrease-stop-time 100) (expect 'foo :to-have-been-called-with 3 183550) (expect 'foo :to-have-been-called-times 4)))) (it "adjusts the start/stop time." (with-temp-buffer (insert mock-srt-data) (subed-srt-jump-to-subtitle-id 1) - (subed-srt-increase-start-time) + (subed-increase-start-time) (expect (save-excursion (subed-srt-jump-to-subtitle-time-start) (thing-at-point 'line)) :to-equal "00:01:01,100 --> 00:01:05,123\n") - (subed-srt-decrease-start-time) - (subed-srt-decrease-start-time) + (subed-decrease-start-time) + (subed-decrease-start-time) (expect (save-excursion (subed-srt-jump-to-subtitle-time-start) (thing-at-point 'line)) :to-equal "00:01:00,900 --> 00:01:05,123\n") - (subed-srt-increase-stop-time) - (subed-srt-increase-stop-time) + (subed-increase-stop-time) + (subed-increase-stop-time) (expect (save-excursion (subed-srt-jump-to-subtitle-time-start) (thing-at-point 'line)) :to-equal "00:01:00,900 --> 00:01:05,323\n") - (subed-srt-decrease-stop-time) + (subed-decrease-stop-time) (expect (save-excursion (subed-srt-jump-to-subtitle-time-start) (thing-at-point 'line)) :to-equal "00:01:00,900 --> 00:01:05,223\n"))) (it "adjusts the start/stop time if milliseconds lack digits." (with-temp-buffer (insert mock-srt-data) (subed-srt-jump-to-subtitle-id 3) - (subed-srt-increase-start-time 200) - (subed-srt-decrease-start-time 100) + (subed-increase-start-time 200) + (subed-decrease-start-time 100) (expect (save-excursion (subed-srt-jump-to-subtitle-time-start) (thing-at-point 'line)) :to-equal "00:03:03,550 --> 00:03:15,5\n") - (subed-srt-increase-stop-time 100) - (subed-srt-decrease-stop-time 200) + (subed-increase-stop-time 100) + (subed-decrease-stop-time 200) (expect (save-excursion (subed-srt-jump-to-subtitle-time-stop) (thing-at-point 'line)) :to-equal "00:03:03,550 --> 00:03:15,400\n"))) (it "sets the number of seconds if given an argument." (with-temp-buffer (insert mock-srt-data) (subed-srt-jump-to-subtitle-id 1) - (subed-srt-increase-start-time 200) - (subed-srt-increase-start-time) - (subed-srt-increase-start-time) + (subed-increase-start-time 200) + (subed-increase-start-time) + (subed-increase-start-time) (expect (save-excursion (subed-srt-jump-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) + (subed-decrease-start-time 50) + (subed-decrease-start-time) (expect (save-excursion (subed-srt-jump-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) + (subed-decrease-stop-time 1000) + (subed-decrease-stop-time) + (subed-decrease-stop-time) (expect (save-excursion (subed-srt-jump-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) + (subed-increase-stop-time 2000) + (subed-increase-stop-time) (expect (save-excursion (subed-srt-jump-to-subtitle-time-start) (thing-at-point 'line)) :to-equal "00:01:01,500 --> 00:01:06,123\n"))) (describe "enforces limits" @@ -684,27 +684,27 @@ Baz. (with-temp-buffer (insert mock-srt-data) (subed-srt-jump-to-subtitle-id 1) - (subed-srt-decrease-start-time 60999) + (subed-decrease-start-time 60999) (expect (subed-srt--subtitle-msecs-start) :to-be 1) - (subed-srt-decrease-start-time 1) + (subed-decrease-start-time 1) (expect (subed-srt--subtitle-msecs-start) :to-be 0) - (subed-srt-decrease-start-time 1) + (subed-decrease-start-time 1) (expect (subed-srt--subtitle-msecs-start) :to-be 0))) (it "of a non-first subtitle." (with-temp-buffer (insert mock-srt-data) (subed-srt-jump-to-subtitle-id 2) - (subed-srt-decrease-start-time (- (subed-srt--subtitle-msecs-start 2) + (subed-decrease-start-time (- (subed-srt--subtitle-msecs-start 2) (subed-srt--subtitle-msecs-stop 1) subed-subtitle-spacing 1)) (expect (subed-srt--subtitle-msecs-start) :to-be (+ (subed-srt--subtitle-msecs-stop 1) subed-subtitle-spacing 1)) - (subed-srt-decrease-start-time 1) + (subed-decrease-start-time 1) (expect (subed-srt--subtitle-msecs-start) :to-be (+ (subed-srt--subtitle-msecs-stop 1) subed-subtitle-spacing)) - (subed-srt-decrease-start-time 1) + (subed-decrease-start-time 1) (expect (subed-srt--subtitle-msecs-start) :to-be (+ (subed-srt--subtitle-msecs-stop 1) subed-subtitle-spacing)))) ) @@ -712,42 +712,42 @@ Baz. (with-temp-buffer (insert mock-srt-data) (subed-srt-jump-to-subtitle-id 2) - (subed-srt-increase-start-time (- (subed-srt--subtitle-msecs-stop 2) + (subed-increase-start-time (- (subed-srt--subtitle-msecs-stop 2) (subed-srt--subtitle-msecs-start 2) 1)) (expect (subed-srt--subtitle-msecs-start 2) :to-be (- (subed-srt--subtitle-msecs-stop 2) 1)) - (subed-srt-increase-start-time 1) + (subed-increase-start-time 1) (expect (subed-srt--subtitle-msecs-start 2) :to-be (subed-srt--subtitle-msecs-stop 2)) - (subed-srt-increase-start-time 1) + (subed-increase-start-time 1) (expect (subed-srt--subtitle-msecs-start 2) :to-be (subed-srt--subtitle-msecs-stop 2)))) (it "when decreasing stop time." (with-temp-buffer (insert mock-srt-data) (subed-srt-jump-to-subtitle-id 2) - (subed-srt-decrease-stop-time (- (subed-srt--subtitle-msecs-stop 2) + (subed-decrease-stop-time (- (subed-srt--subtitle-msecs-stop 2) (subed-srt--subtitle-msecs-start 2) 1)) (expect (subed-srt--subtitle-msecs-stop 2) :to-be (+ (subed-srt--subtitle-msecs-start 2) 1)) - (subed-srt-decrease-stop-time 1) + (subed-decrease-stop-time 1) (expect (subed-srt--subtitle-msecs-stop 2) :to-be (subed-srt--subtitle-msecs-start 2)) - (subed-srt-decrease-stop-time 1) + (subed-decrease-stop-time 1) (expect (subed-srt--subtitle-msecs-stop 2) :to-be (subed-srt--subtitle-msecs-start 2)))) (describe "when increasing stop time" (it "of the last subtitle." (with-temp-buffer (insert mock-srt-data) (subed-srt-jump-to-subtitle-id 3) - (subed-srt-increase-stop-time (- (* 99 3600000) + (subed-increase-stop-time (- (* 99 3600000) (subed-srt--subtitle-msecs-stop 3))) (expect (subed-srt--subtitle-msecs-stop 3) :to-be (* 99 3600000)) - (subed-srt-increase-stop-time (* 59 60000)) + (subed-increase-stop-time (* 59 60000)) (expect (subed-srt--subtitle-msecs-stop 3) :to-be (+ (* 99 3600000) (* 59 60000))) - (subed-srt-increase-stop-time (* 59 1000)) + (subed-increase-stop-time (* 59 1000)) (expect (subed-srt--subtitle-msecs-stop 3) :to-be (+ (* 99 3600000) (* 59 60000) (* 59 1000))) - (subed-srt-increase-stop-time 999) + (subed-increase-stop-time 999) (expect (subed-srt--subtitle-msecs-stop 3) :to-be (+ (* 99 3600000) (* 59 60000) (* 59 1000) @@ -756,17 +756,17 @@ Baz. (with-temp-buffer (insert mock-srt-data) (subed-srt-jump-to-subtitle-id 2) - (subed-srt-increase-stop-time (- (subed-srt--subtitle-msecs-start 3) + (subed-increase-stop-time (- (subed-srt--subtitle-msecs-start 3) (subed-srt--subtitle-msecs-stop 2) subed-subtitle-spacing 1)) (expect (subed-srt--subtitle-msecs-stop 2) :to-be (- (subed-srt--subtitle-msecs-start 3) subed-subtitle-spacing 1)) - (subed-srt-increase-stop-time 1) + (subed-increase-stop-time 1) (expect (subed-srt--subtitle-msecs-stop 2) :to-be (- (subed-srt--subtitle-msecs-start 3) subed-subtitle-spacing)) - (subed-srt-increase-stop-time 1) + (subed-increase-stop-time 1) (expect (subed-srt--subtitle-msecs-stop 2) :to-be (- (subed-srt--subtitle-msecs-start 3) subed-subtitle-spacing)))) ) @@ -775,13 +775,13 @@ Baz. (with-temp-buffer (insert "foo") (goto-char (point-min)) - (subed-srt-increase-start-time) + (subed-increase-start-time) (expect (buffer-string) :to-equal "foo") - (subed-srt-decrease-start-time) + (subed-decrease-start-time) (expect (buffer-string) :to-equal "foo") - (subed-srt-increase-stop-time) + (subed-increase-stop-time) (expect (buffer-string) :to-equal "foo") - (subed-srt-decrease-stop-time) + (subed-decrease-stop-time) (expect (buffer-string) :to-equal "foo"))) )