[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"
- [nongnu] elpa/subed 53d1e33 102/389: Fix error when adjusting start/stop time in empty buffer, (continued)
- [nongnu] elpa/subed 53d1e33 102/389: Fix error when adjusting start/stop time in empty buffer, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed a0cb0f1 108/389: Keep region active during subtitle movement, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 2c7554a 109/389: Wrap subed--for-each-subtitle in atomic-change-group, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed e792e0f 122/389: Fix test description, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 489bbea 130/389: Remove subed-milliseconds-move, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed a7dda70 137/389: Add subtitle shifting to features, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed a819a93 139/389: Fix test description, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 06851d8 143/389: Prevent overlapping when adjusting subtitle start/stop time, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 651c6de 031/389: Wrap some function bodies in save-match-data, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 57c902a 068/389: subed-srt-sanitize: Don't change buffer unless it's necessary, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 1571de4 070/389: Use prefix arg to set start/stop time adjustment,
ELPA Syncer <=
- [nongnu] elpa/subed f832a1d 075/389: Add more tests for subed-srt-move-to-subtitle-end, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 8374498 076/389: README: Split feature list and some rewording, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed d0708e5 080/389: Fix screenshot, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 03cd2bf 097/389: Wrap msecs-to-timestamp in save-match-data, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 4960c74 098/389: Make timestamp parsing more robust, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 9b95137 104/389: Test subed--for-each-subtitle more thoroughly, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed ec03689 105/389: Fix subed--for-each-subtitle, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed a7cbce6 107/389: Test subed-move-subtitle-forward/backward more thoroughly, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 5da6d79 112/389: Add "pause with key" to features, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 868d05c 114/389: Adjust some variable descriptions, ELPA Syncer, 2021/12/03