<table><tr><td style="">kossebau retitled this revision from "[RFC] Exposing slideshow to MPRIS controllers" to "Expose slideshow to MPRIS controllers".<br />kossebau edited the summary of this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-bhsfxxq3u36r65k/">(Show Details)</a>
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D10972">View Revision</a></tr></table><br /><div><strong>CHANGES TO REVISION SUMMARY</strong><div><div style="white-space: pre-wrap; color: #74777D;">Taking the abstraction "Media" in <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">MPRIS into use, a plain slide in a</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">"Media Player Remote Interfacing</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">slideshow is the same as a still pictur</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Specification" (MPRIS) into use, a plain slid</span>e in a <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">movie without any sound or</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">slideshow can be seen</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">other parallel tracks (odor/vibration tracks still to make it to more ;) )</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">to be the same as e.g. a still picture in a movie without any sound.</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">So</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Following that,</span> a slideshow <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">of</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">with</span> pictures and videos <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">can be directly mapped onto the data</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">as in the UI model</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">model used with MPRIS.</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">of Gwenview can be roughly mapped onto the concept of a list of tracks as</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Exposing</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">with in</span> the <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">slideshow object of a Gwenview instance as MPRIS D-Bus object</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">data model of MPRIS.<br />
<br />
This patch exposes the list of images/movies in the current folder and</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">allows the</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">the related</span> slideshow <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">to be controlled by any</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">feature as</span> MPRIS <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">controllers</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">D-Bus object</span>, <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">e.g.:</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">implementing for a</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">* the MPRIS bridge used with kde-connect (so lean back in the couch and</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">start the interfaces</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">control the slideshow from your smart mobile :) )</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">* "org.mpris.MediaPlayer2"</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">* Plasma media controller applet (control on small screen slideshow on big</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">* "org.mpris.MediaPlayer2.Player"</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">screen (needs patch for</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">trying to map those to</span> the <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">applet first though, currently misses to work with</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Gwenview UX closely.<br />
<br />
This allows the slideshow and some other navigation to be controlled</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">CanPause=false MPRIS players) -> D10973<br />
<br />
The current code works for a start</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">by any MPRIS controllers, which includes e.g.<br />
* keyboard mediakeys (Play/Pause, Stop, Next</span>, <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">only fragile in the trackid generation.<br />
<br />
Questions:</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Previous),<br />
as handled by Plasma MPRIS dataengine</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">* make this an op</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">* KDE Connect media player controller plugin<br />
<br />
Addi</span>tiona<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">l build feature?</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">lly the MRPIS D-Bus object is unregistered while the workspace</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">* make this an optional feature toggable in the settings,</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">lockscreen is activated.</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">where/how best?</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Because at least the Plasma lockscreen has</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">* any idea </span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">the feature to s</span>how <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">to create unique track ids based on the media url?</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">controls for any currently running MPRIS players,</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">* how to provide thumbnails to the mpris controller via temp files whose</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">which for one does not make sense currently for an image player as all</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);"> url</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">displays are locked, and</span> then<span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);"> also</span> can be <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">passed in th</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">surprising for some users and<br />
result in data leaks via the imag</span>e metadata<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">?</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);"> used.</span><br />
<br />
Future:<div style="padding: 8px 0;">...</div>presentation-like media shows. So there can and will be cross-app<br />
<span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">rich (remote) </span>controllers <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">for LibreOffice Impress, Okular, Calligra Stage & Co.,</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">also for classical presentation application</span><br />
instead of only per-app <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">(remote) controllers</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">ones</span>.<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">So s</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">S</span>upporting the existing MPRIS interfaces<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);"> is a first step into that</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">, even if slightly bending the</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">direction and already adds value as it allows reuse of existing MPRIS</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">semantics, is a first step into that direction and already adds value</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">controllers.<br />
So follow-up work once this first MPRIS support patch is in will be</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">as it allows reuse of existing MPRIS controllers e.g. for remote control.<br />
<br />
So follow-up work will be to also implement the other MPRIS interfaces</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">to also implement the MPRIS interfac</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">lik</span>e org.mpris.MediaPlayer2.TrackList<span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">, for exposing the whole set of</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">for exposing the whole set of </span>"slides"<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">,</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">.</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">allowing</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">This will enable</span> MPRIS controller<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">s to</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">s to show the user a complete</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">show the user the</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">visual</span> list and e.g. navigate directly to a given slide<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">.<br />
<br />
Depends on D10973<br />
</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);"> or give a preview<br />
for the next/previous slides.<br />
<br />
CC</span>BUG: 359381</div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R260 Gwenview</div></div></div><br /><div><strong>BRANCH</strong><div><div>addmprisservice</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D10972">https://phabricator.kde.org/D10972</a></div></div><br /><div><strong>To: </strong>kossebau, Gwenview, rkflx<br /><strong>Cc: </strong>mtijink, ngraham, nicolasfella, KDE Connect, rkflx, broulik<br /></div>