From e4e46f41b0d01b9efab86b2f3cebbf116c3216b5 Mon Sep 17 00:00:00 2001 From: jao Date: Sat, 22 Jan 2022 00:10:17 +0000 Subject: spt/mpris switching --- lib/media/jao-mpris.el | 20 +++++++++++++++++++- lib/media/jao-spt.el | 24 ++++++++++++++++++++---- 2 files changed, 39 insertions(+), 5 deletions(-) (limited to 'lib/media') 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 ;; 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) -- cgit v1.2.3