[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    D13717: Implement Seek() and Seeked()
From:       Kai Uwe Broulik <noreply () phabricator ! kde ! org>
Date:       2018-06-27 9:35:10
Message-ID: 995fc069ec65c6378bf06fb7b9b91b92 () localhost ! localdomain
[Download RAW message or body]

[Attachment #2 (text/plain)]

broulik added a comment.


  Thanks for your patch! There's a minor issue but other than that it's good.
  Can you also verify this doesn't cause a loop when using Plasma's media controller \
applet?

INLINE COMMENTS

> content-script.js:177
> +    if (activePlayer) {
> +        if (!activePlayer.seekable) {
> +            console.warn("Got seek command, but player is not seekable");

The `seekable` property isn't an int but a `TimeRanges` object that tells you which \
portions of the player are seekable so this will never be `false`

[1] https://www.w3schools.com/tags/av_prop_seekable.asp

> mprisplugin.cpp:205
> +        const qreal position = \
> data.value(QStringLiteral("currentTime")).toDouble() * 1000 * 1000; +        \
> Q_EMIT(((MPrisPlayer *) m_player)->Seeked((qlonglong) position)); +        \
> setPosition(position);

Can't you just do `emit Seeked(position)`?

REPOSITORY
  R856 Plasma Browser Integration

REVISION DETAIL
  https://phabricator.kde.org/D13717

To: mokhtari, broulik
Cc: nicolasfella, plasma-devel, #kde_connect, timothyc, jdvr, yannux, Danial0_0, \
johnq, ragreen, Pitel, adeen-s, SemperPeritus, ndavis, daniel.z.tg, jeanv, ZrenBot, \
seebauer, bugzy, MayeulC, menasshock, lesliezhai, ali-mohamed, jensreuterberg, ach, \
abetts, sebas, apol, mart


[Attachment #3 (text/html)]

<table><tr><td style="">broulik added a comment.
</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/D13717">View Revision</a></tr></table><br \
/><div><div><p>Thanks for your patch! There&#039;s a minor issue but other than that \
it&#039;s good.<br /> Can you also verify this doesn&#039;t cause a loop when using \
Plasma&#039;s media controller applet?</p></div></div><br /><div><strong>INLINE \
COMMENTS</strong><div><div style="margin: 6px 0 12px 0;"><div style="border: 1px \
solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; \
border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div \
style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a \
style="float: right; text-decoration: none;" \
href="https://phabricator.kde.org/D13717#inline-72271">View Inline</a><span \
style="color: #4b4d51; font-weight: bold;">content-script.js:177</span></div> <div \
style="font: 11px/15px &quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, \
monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div \
style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span \
style="color: #aa4000">if</span> <span class="p">(</span><span style="color: \
#004012">activePlayer</span><span class="p">)</span> <span class="p">{</span> \
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, \
.6);">        <span style="color: #aa4000">if</span> <span class="p">(</span><span \
style="color: #aa2211">!</span><span style="color: #004012">activePlayer</span><span \
class="p">.</span><span style="color: #004012">seekable</span><span \
class="p">)</span> <span class="p">{</span> </div><div style="padding: 0 8px; margin: \
0 4px; background: rgba(151, 234, 151, .6);">            <span style="color: \
#004012">console</span><span class="p">.</span><span style="color: \
#004012">warn</span><span class="p">(</span><span style="color: #766510">&quot;Got \
seek command, but player is not seekable&quot;</span><span class="p">);</span> \
</div></div></div> <div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; \
margin: 8px;">The <tt style="background: #ebebeb; font-size: 13px;">seekable</tt> \
property isn&#039;t an int but a <tt style="background: #ebebeb; font-size: \
13px;">TimeRanges</tt> object that tells you which portions of the player are \
seekable so this will never be <tt style="background: #ebebeb; font-size: \
13px;">false</tt></p>

<p style="padding: 0; margin: 8px;">[1] <a \
href="https://www.w3schools.com/tags/av_prop_seekable.asp" class="remarkup-link" \
target="_blank" rel="noreferrer">https://www.w3schools.com/tags/av_prop_seekable.asp</a></p></div></div><br \
/><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; \
background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 \
1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; \
overflow: hidden;"><a style="float: right; text-decoration: none;" \
href="https://phabricator.kde.org/D13717#inline-72272">View Inline</a><span \
style="color: #4b4d51; font-weight: bold;">mprisplugin.cpp:205</span></div> <div \
style="font: 11px/15px &quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, \
monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div \
style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">        \
<span style="color: #aa4000">const</span> <span class="n">qreal</span> <span \
class="n">position</span> <span style="color: #aa2211">=</span> <span \
class="n">data</span><span class="p">.</span><span class="n">value</span><span \
class="p">(</span><span class="n">QStringLiteral</span><span class="p">(</span><span \
style="color: #766510">&quot;currentTime&quot;</span><span class="p">)).</span><span \
class="n">toDouble</span><span class="p">();</span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(251, 175, 175, .7);">        <span \
class="bright"></span><span style="color: #74777d"><span class="bright">// FIXME \
actually invoke &quot;</span>Seeked<span class="bright">&quot; signal</span></span> \
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, \
.7);">        <span class="n">setPosition</span><span class="p">(</span><span \
class="n">position<span class="bright"></span></span><span class="bright"> \
</span><span style="color: #aa2211"><span class="bright">*</span></span><span \
class="bright"> </span><span style="color: #601200"><span \
class="bright">1000</span></span><span class="bright"> </span><span style="color: \
#aa2211"><span class="bright">*</span></span><span class="bright"> </span><span \
style="color: #601200"><span class="bright">1000</span></span><span \
class="p">);</span> </div><div style="padding: 0 8px; margin: 0 4px; background: \
rgba(151, 234, 151, .6);">        <span style="color: #aa4000">const</span> <span \
class="n">qreal</span> <span class="n">position</span> <span style="color: \
#aa2211">=</span> <span class="n">data</span><span class="p">.</span><span \
class="n">value</span><span class="p">(</span><span \
class="n">QStringLiteral</span><span class="p">(</span><span style="color: \
#766510">&quot;currentTime&quot;</span><span class="p">)).</span><span \
class="n">toDouble</span><span class="p">()<span class="bright"></span></span><span \
class="bright"> </span><span style="color: #aa2211"><span \
class="bright">*</span></span><span class="bright"> </span><span style="color: \
#601200"><span class="bright">1000</span></span><span class="bright"> </span><span \
style="color: #aa2211"><span class="bright">*</span></span><span class="bright"> \
</span><span style="color: #601200"><span class="bright">1000</span></span><span \
class="p">;</span> </div><div style="padding: 0 8px; margin: 0 4px; background: \
rgba(151, 234, 151, .6);">        <span class="bright"></span><span class="n"><span \
class="bright">Q_EMIT</span></span><span class="bright"></span><span class="p"><span \
class="bright">(((</span></span><span class="bright"></span><span class="n"><span \
class="bright">MPrisPlayer</span></span><span class="bright"> </span><span \
style="color: #aa2211"><span class="bright">*</span></span><span \
class="bright"></span><span class="p"><span class="bright">)</span></span><span \
class="bright"> </span><span class="n"><span \
class="bright">m_player</span></span><span class="bright"></span><span \
class="p"><span class="bright">)</span></span><span class="bright"></span><span \
style="color: #aa2211"><span class="bright">-&gt;</span></span><span \
class="n">Seeked<span class="bright"></span></span><span class="bright"></span><span \
class="p"><span class="bright">((</span></span><span class="bright"></span><span \
class="n"><span class="bright">qlonglong</span></span><span \
class="bright"></span><span class="p"><span class="bright">)</span></span><span \
class="bright"> </span><span class="n"><span \
class="bright">position</span></span><span class="bright"></span><span \
class="p"><span class="bright">));</span></span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);">        <span \
class="n">setPosition</span><span class="p">(</span><span \
class="n">position</span><span class="p">);</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: \
8px;">Can&#039;t you just do <tt style="background: #ebebeb; font-size: 13px;">emit \
Seeked(position)</tt>?</p></div></div></div></div></div><br \
/><div><strong>REPOSITORY</strong><div><div>R856 Plasma Browser \
Integration</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a \
href="https://phabricator.kde.org/D13717">https://phabricator.kde.org/D13717</a></div></div><br \
/><div><strong>To: </strong>mokhtari, broulik<br /><strong>Cc: </strong>nicolasfella, \
plasma-devel, KDE Connect, timothyc, jdvr, yannux, Danial0_0, johnq, ragreen, Pitel, \
adeen-s, SemperPeritus, ndavis, daniel.z.tg, jeanv, ZrenBot, seebauer, bugzy, \
MayeulC, menasshock, lesliezhai, ali-mohamed, jensreuterberg, ach, abetts, sebas, \
apol, mart<br /></div>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic