"Fran Burstall (Gmail)" <fran.burstall@gmail.com> writes:
> On Mon, 31 Oct 2022 at 12:05, Yoni Rabkin <yoni@rabkins.net> wrote:
>
>>
>> Björn Bidar via <emms-help@gnu.org> 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