On Mon, 31 Oct 2022 at 13:36, Yoni Rabkin <[email protected]> wrote:

> "Fran Burstall (Gmail)" <[email protected]> writes:
>
> > On Mon, 31 Oct 2022 at 12:05, Yoni Rabkin <[email protected]> wrote:
> >
> >>
> >> Björn Bidar via <[email protected]> writes:
> >>
> >> > The emms manual mentions emms-dbus, where can I find that?
> >>
> >> That is just a reference to some code from someone's Emms config, and
> >> not any official package.
> >>
> >> > It would be really useful to have some kind of mpris integration
> >> > in emms.
> >>
> >> Shouldn't be too hard to implement in an Emacs with dbus.
> >>
> >
> > In fact, I have an implementation of mpris for emms that I was thinking
> > about contributing to emms.
> >
> > I hesitated because:
> >
> > 1. I thought it was an itch that only I wanted to scratch
> > 2. It is not a complete implementation of the mpris2 spec.  You can use
> it
> > to play/pause/stop/next/previous/seek over mpris but not (for various
> > reasons) change things like LoopStatus/Shuffle/Volume.
> >
> > If you want it despite these limitations, let me know and I will push it
> to
> > the git repo.
>
> Please do, that would be great.
>
> Björn, would you be willing to test Fran's implementation once it is in
> the repo?
>
> --
>    "Cut your own wood and it will warm you twice"
>

I have pushed emms-mpris.el to a new branch called mpris in the repo.

>From the commentary:

;;; Commentary:
;; This package provides a dbus interface to EMMS.

;; Usage:
;;  (require 'emms-mpris)
;;  (emms-mpris-enable)

;; Switch off with
;;  (emms-mpris-disable)

;; Caveats: this is not quite a complete implementation of the
;; org.mpris.MediaPlayer2 and org.mpris.MediaPlayer2.Player interfaces
;; (see
;; https://specifications.freedesktop.org/mpris-spec/latest/index.html).
;; What is missing:
;;  - Volume: this should be easy but there seems to be no way to get a
;; simple percentage to report the volume---every emms-volume
;; controller returns a string in a different format, sigh.
;; - Shuffle
;; - LoopStatus
;; The issue with the last two is how to allow them to be set both
;; over dbus and via lisp/emms-ui.  I do not know how to do this in a
;; simple way.

I am very open to help in improving this!

---Fran

Reply via email to