summaryrefslogtreecommitdiffhomepage
path: root/lib/media
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2022-01-22 00:10:17 +0000
committerjao <jao@gnu.org>2022-01-22 00:10:17 +0000
commite4e46f41b0d01b9efab86b2f3cebbf116c3216b5 (patch)
tree68b55bc840cef27c87ff44ccc6e798ef9020838e /lib/media
parentec873bca5cfebe194b56ac03e4b760cf63f2156c (diff)
downloadelibs-e4e46f41b0d01b9efab86b2f3cebbf116c3216b5.tar.gz
elibs-e4e46f41b0d01b9efab86b2f3cebbf116c3216b5.tar.bz2
spt/mpris switching
Diffstat (limited to 'lib/media')
-rw-r--r--lib/media/jao-mpris.el20
-rw-r--r--lib/media/jao-spt.el24
2 files changed, 39 insertions, 5 deletions
diff --git a/lib/media/jao-mpris.el b/lib/media/jao-mpris.el
index 8f5d0de..d34480a 100644
--- a/lib/media/jao-mpris.el
+++ b/lib/media/jao-mpris.el
@@ -1,6 +1,6 @@
;;; jao-mpris.el --- mpris players control -*- lexical-binding: t; -*-
-;; Copyright (C) 2020, 2021 jao
+;; Copyright (C) 2020, 2021, 2022 jao
;; Author: jao <mail@jao.io>
;; Keywords: multimedia
@@ -39,6 +39,24 @@
(jao-playerctl--def jao-mpris-next "next")
(jao-playerctl--def jao-mpris-previous "previous")
+(defun jao-mpris-seek (secs)
+ (interactive "p")
+ (let ((secs (if (zerop secs) 10 secs)))
+ (jao-mpris--playerctl "position" (format "%d" secs))))
+
+(defun jao-mpris-seek-back (secs)
+ (interactive "p")
+ (jao-mpris-seek (- secs)))
+
+(defun jao-mpris-vol (n)
+ (interactive "p")
+ (let ((secs (if (zerop n) 10 n)))
+ (jao-mpris--playerctl "volume" (format "%d" n))))
+
+(defun jao-mpris-vol-down (n)
+ (interactive "p")
+ (jao-mpris-vol (- n)))
+
(defun jao-playerctl--status (&optional sep)
(let* ((sep (or sep " ||| "))
(fmt (mapconcat 'identity
diff --git a/lib/media/jao-spt.el b/lib/media/jao-spt.el
index 1fdee83..9cdd93e 100644
--- a/lib/media/jao-spt.el
+++ b/lib/media/jao-spt.el
@@ -85,16 +85,32 @@
(jao-spt--pb* "--dislike"))
;;;###autoload
-(defun jao-spt-seek (secs)
+(defun jao-spt-seek (&optional secs)
(interactive "p")
- (let ((secs (if (zerop secs) 10 secs)))
- (jao-spt--pb* "--seek" (format "%s%s" (if (> secs 0) "+" "-") secs))))
+ (let ((secs (if (zerop (or secs 0)) 10 secs)))
+ (jao-spt--pb* "--seek" (format "%d" secs))))
;;;###autoload
-(defun jao-spt-seek-back (secs)
+(defun jao-spt-seek-back (&optional secs)
(interactive "p")
(jao-spt-seek (- secs)))
+(defun jao-spt--get-vol (delta)
+ (let* ((jao-spt-format "%v")
+ (v (string-to-number (jao-spt--pb))))
+ (number-to-string (max 0 (+ delta v)))))
+
+;;;###autoload
+(defun jao-spt-vol (&optional n)
+ (interactive "p")
+ (let ((n (or n 10)))
+ (jao-spt--pb* "--volume" (jao-spt--get-vol (if (zerop n) 10 n)))))
+
+;;;###autoload
+(defun jao-spt-vol-down (&optional n)
+ (interactive "p")
+ (jao-spt-vol (- (or n 10))))
+
;;;###autoload
(defun jao-spt-echo-current ()
(interactive)