Taking the abstraction "Media" in MPRIS into use, a plain slide in a
slideshow is the same as a still picture in a movie without any sound or
other parallel tracks (odor/vibration tracks still to make it to more ;) )
So a slideshow of pictures and videos can be directly mapped onto the data
model used with MPRIS.
Exposing the slideshow object of a Gwenview instance as MPRIS D-Bus object
allows the slideshow to be controlled by any MPRIS controllers, e.g.:
* the MPRIS bridge used with kde-connect (so lean back in the couch and
control the slideshow from your smart mobile :) )
* Plasma media controller applet (control on small screen slideshow on big
screen (needs patch for the applet first though, currently misses to work with
CanPause=false MPRIS players) -> D10973
The current code works for a start, only fragile in the trackid generation.
Questions:
* make this an optional build feature?
* make this an optional feature toggable in the settings, where/how best?
* any idea how to create unique track ids based on the media url?
* how to provide thumbnails to the mpris controller via temp files whose
url then can be passed in the metadata?
Future:
The great plan is to enhance the MPRIS spec to also work well for
presentation-like media shows. So there can and will be cross-app
controllers for LibreOffice Impress, Okular, Calligra Stage & Co.,
instead of only per-app (remote) controllers.
So supporting the existing MPRIS interfaces is a first step into that
direction and already adds value as it allows reuse of existing MPRIS
controllers.
So follow-up work once this first MPRIS support patch is in will be
to also implement the MPRIS interface org.mpris.MediaPlayer2.TrackList
for exposing the whole set of "slides", allowing MPRIS controllers to
show the user the list and e.g. navigate directly to a given slide.