[plasmashell] [Bug 391545] XF86AudioPlay no longer resumes play on spotify

2018-03-13 Thread Friedrich W . H . Kossebau
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #12 from Friedrich W. H. Kossebau  ---
spotify 1.0.69 working as expected is good news.
Thanks for that update, and thanks also again for your active support in
sorting out things :)

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 391545] XF86AudioPlay no longer resumes play on spotify

2018-03-13 Thread Danny Auble
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #11 from Danny Auble  ---
I agree, thanks for your help on this.  I have already verified they have this
fixed in a newer release of spotify.  The spotify version with the problem is
0.9.17.8.  1.0.69 is working as expected.

I also verified the 'good' system I though it worked with was actually still
running KDE 5.10.5 so it also makes sense why it was working.

Thanks for your help and great information on how to debug.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 391545] XF86AudioPlay no longer resumes play on spotify

2018-03-13 Thread Friedrich W . H . Kossebau
https://bugs.kde.org/show_bug.cgi?id=391545

Friedrich W. H. Kossebau  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |UPSTREAM

--- Comment #10 from Friedrich W. H. Kossebau  ---
Seems we found the cause, good.

So this then is a bug in spofify (or whatever adapter there is for it to
support MPRIS). They need to properly handle the "Play" method, if they want to
rightfully claim to support MPRIS. The purpose of specs such as MPRIS is to
have a generic contract which every party complies to, so things work across
systems out-of-the-box.
I hope you agree that adapting implementations (like here Plasma) to deal with
some parties misbehaving ruins the idea of the spec.

So please report this bug about not handling the "Play" method to where you got
spotify from. You did not mention your operating system, so I cannot give any
hint myself who you might need to contact, hope you do know or can find out.

While most other MPRIS controllers might also default to use the "PlayPause"
method (so this bug is not uncovered), there is a chance other MPRIS
controllers also try just the "Play" method and will fail as well. So best for
all in the long-term is to have spotify behave correctly.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 391545] XF86AudioPlay no longer resumes play on spotify

2018-03-13 Thread Danny Auble
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #9 from Danny Auble  ---
qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2
org.mpris.MediaPlayer2.Player.PlayPause

Also works just fine as well (expected).

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 391545] XF86AudioPlay no longer resumes play on spotify

2018-03-13 Thread Danny Auble
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #8 from Danny Auble  ---
Thanks for the tutorial :).

That appears to be the issue.

qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2
org.mpris.MediaPlayer2.Player.Play

results in nothing.

qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2
org.mpris.MediaPlayer2.Player.Pause

works just fine.

Any idea how to fix it (or go back to the old method)?  Seems strange it works
on other systems.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 391545] XF86AudioPlay no longer resumes play on spotify

2018-03-13 Thread Friedrich W . H . Kossebau
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #7 from Friedrich W. H. Kossebau  ---
Calling the "Play" method would be done like this:

qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 \
org.mpris.MediaPlayer2.Player.Play

Spec for Play behaviour is at
https://specifications.freedesktop.org/mpris-spec/latest/Player_Interface.html#Method:Play

For all the methods you would just use "org.mpris.MediaPlayer2.Player." +
method name in the above call. So what you do here is:
qdbus service object-in-service method-of-object (args, none here)

Getting the "PlaybackStatus" property:

qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 \
org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player \
PlaybackStatus

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 391545] XF86AudioPlay no longer resumes play on spotify

2018-03-13 Thread Danny Auble
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #6 from Danny Auble  ---
I am glad it makes sense at least :).

How would I check this method and property?

Thanks again for you help!

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 391545] XF86AudioPlay no longer resumes play on spotify

2018-03-13 Thread Friedrich W . H . Kossebau
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #5 from Friedrich W. H. Kossebau  ---
Thanks for the info. Okay, that make things more transparent: in a change for
Plasma 5.12.3, in the desire to properly support the CanPause flag, the media
key handling code was changed from using the "PlayPause" method to use instead
explicitly the "Play" & "Pause" methods and take the current PlaybackStatus
into account.

See the respective current code in Plasma here:
https://cgit.kde.org/plasma-workspace.git/tree/dataengines/mpris2/multiplexedservice.cpp?h=Plasma%2F5.12#n78

So there is either the chance that spotify does not properly update the
PlaybackStatus or does not react to the call of "Play" method.

Can you check that method and property as well?

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 391545] XF86AudioPlay no longer resumes play on spotify

2018-03-13 Thread Danny Auble
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #4 from Danny Auble  ---
If I attach dbus-monitor to it I get

dbus-monitor "sender='org.mpris.MediaPlayer2.spotify'"

When I hit play/pause

method return time=1520955006.105602 sender=:1.40 -> destination=:1.19
serial=1108 reply_serial=1360
   variant   boolean true
method return time=1520955006.105816 sender=:1.40 -> destination=:1.19
serial=1109 reply_serial=1361
   variant   string "Playing"
method return time=1520955006.106052 sender=:1.40 -> destination=:1.19
serial=1110 reply_serial=1362
   variant   boolean true
signal time=1520955006.109423 sender=:1.40 -> destination=(null destination)
serial= path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem;
member=NewStatus
   string "Passive"
signal time=1520955006.109442 sender=:1.40 -> destination=(null destination)
serial=1112 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem;
member=NewStatus
   string "Active"
signal time=1520955006.109452 sender=:1.40 -> destination=(null destination)
serial=1113 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem;
member=NewToolTip
method return time=1520955006.89 sender=:1.40 -> destination=:1.19
serial=1114 reply_serial=1363
signal time=1520955006.111576 sender=:1.40 -> destination=(null destination)
serial=1115 path=/org/mpris/MediaPlayer2;
interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
   string "org.mpris.MediaPlayer2.Player"
   array [
  dict entry(
 string "PlaybackStatus"
 variant string "Paused"
  )
   ]
   array [
   ]
signal time=1520955006.111671 sender=:1.40 -> destination=(null destination)
serial=1116 path=/StatusNotifierItem/menu; interface=com.canonical.dbusmenu;
member=LayoutUpdated
   uint32 14
   int32 0
method return time=1520955006.111899 sender=:1.40 -> destination=:1.19
serial=1117 reply_serial=1364
   variant   int64 0
method return time=1520955006.114116 sender=:1.40 -> destination=:1.19
serial=1118 reply_serial=1365
   uint32 14
   struct {
  int32 0
  array [
 dict entry(
string "children-display"
variantstring "submenu"
 )
  ]
  array [
 variant struct {
   int32 1
   array [
  dict entry(
 string "enabled"
 variant boolean false
  )
  dict entry(
 string "label"
 variant string "Duran Duran รข
Ordinary World"
  )
   ]
   array [
   ]
}
 variant struct {
   int32 2
   array [
  dict entry(
 string "type"
 variant string "separator"
  )
   ]
   array [
   ]
}
 variant struct {
   int32 3
   array [
  dict entry(
 string "label"
 variant string "Open Spotify"
  )
   ]
   array [
   ]
}
 variant struct {
   int32 4
   array [
  dict entry(
 string "type"
 variant string "separator"
  )
   ]
   array [
   ]
}
 variant struct {
   int32 5
   array [
  dict entry(
 string "label"
 variant string "Play"
  )
   ]
   array [
   ]
}
 variant struct {
   int32 6
   array [
  dict entry(
 string "type"
 variant string "separator"
  )
   ]
   array [
   ]
}
 variant struct {
   int32 7
   array [
  dict entry(
 string "label"
 variant string "Next"
  )
   ]
   array [
   ]
}
 variant struct {
   int32 8
   array [
  dict entry(
 string "label"
 variant string "Previous"
  )
   ]
   array [
   ]
}
 variant struct {
   int32 9
   

[plasmashell] [Bug 391545] XF86AudioPlay no longer resumes play on spotify

2018-03-13 Thread Danny Auble
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #3 from Danny Auble  ---
For further reference

qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2
org.freedesktop.DBus.Properties.GetAll org.mpris.MediaPlayer2.Player
CanControl: true
CanGoNext: true
CanGoPrevious: true
CanPause: true
CanPlay: true
CanSeek: true
LoopStatus: Playlist
MaximumRate: 1
Metadata: mpris:artUrl:
http://open.spotify.com/thumb/0fd555d08a265b1c364044a4118cf6e1ea700f67
mpris:length: 32300
mpris:trackid: spotify:track:6Oy2qpuumdnPo44ZpmxSY7
xesam:album: Liberty
xesam:artist: Duran Duran
xesam:autoRating: 0.16
xesam:contentCreated: 1990-01-01T00:00:00
xesam:discNumber: 1
xesam:title: Downtown
xesam:trackNumber: 11
xesam:url: spotify:track:6Oy2qpuumdnPo44ZpmxSY7
MinimumRate: 1
PlaybackStatus: Paused
Position: 0
Rate: 1
Shuffle: false
Volume: 0

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 391545] XF86AudioPlay no longer resumes play on spotify

2018-03-13 Thread Danny Auble
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #2 from Danny Auble  ---
Friedrich, thanks for the help!

qdbus | grep org.mpris.MediaPlayer2
 org.mpris.MediaPlayer2.spotify

qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2
org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player CanPlay
true
qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2
org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player CanPause
true

At this point it seems to be correct

Note even stranger, I have set up another hotkey to expressly call

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify
/org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause

and that works just fine for both play and pause.

I have tried uninstalling and reinstalling spotify as well and that didn't
change the behavior.  This just started with the update.

I also tried on a different machine and functionality seems to be correct
there, so this must be some sort of configuration issue.  I have tried with a
completely new user on the bad system with the same bad results so the issue
seems to be system wide.  I suppose I could reinstall everything from fresh,
but I would rather avoid doing that.

At the moment I can still use the extra hotkey to do the play/pausing, but love
the MediaPlayer interface when switching players (as I use Amarok very often as
well).

Thanks again for your help!

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 391545] XF86AudioPlay no longer resumes play on spotify

2018-03-13 Thread Friedrich W . H . Kossebau
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #1 from Friedrich W. H. Kossebau  ---
Hi, thanks for the report & sorry for having caused trouble for you by getting
slightly more strict about MPRIS usage.

By your report I for now suspect this might be a bug with Spotify's (or some
wrapper to it? no clue about spotify code) implementation of the MPRIS spec. I
do not have/use spotify myself, so cannot test.

This is what you can do to help with this problem: 
On the commandline when spotify is running you can inspect its MPRIS
properties. Please tell what you get as results when spotify is not reacting as
expected.

# Find the D-Bus MPRIS service name of spotify
# Should return something like "org.mpris.MediaPlayer2.spotify"
qdbus | grep org.mpris.MediaPlayer2

# Assuming the name is "org.mpris.MediaPlayer2.spotify" (adapt if needed)
# now check the states of the properties "CanPlay" & "CanPause"
# (each qdbus call can also be done in one line, using multiline with \
# just because of this input field)
qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 \
org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player CanPlay
qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 \
org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player CanPause


The property query results ("true" or "false") should match what the MPRIS spec
requires for them giving the current state the spotify app is in. See
https://specifications.freedesktop.org/mpris-spec/latest/Player_Interface.html#Property:CanPlay
. Especially important in the spec is this bit:
"Note that this is related to whether there is a "current track": the value
should not depend on whether the track is currently paused or playing. In fact,
if a track is currently playing (and CanControl is true), this should be true."

Chance is that this is not matched given your description. But for now just my
assumption.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 391545] XF86AudioPlay no longer resumes play on spotify

2018-03-13 Thread Kai Uwe Broulik
https://bugs.kde.org/show_bug.cgi?id=391545

Kai Uwe Broulik  changed:

   What|Removed |Added

 CC||k...@privat.broulik.de,
   ||plasma-b...@kde.org
   Assignee|alex.me...@kde.org  |k...@privat.broulik.de
   Target Milestone|--- |1.0
Product|frameworks-kmediaplayer |plasmashell
  Component|general |Media Player

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 391545] XF86AudioPlay no longer resumes play on spotify

2018-03-13 Thread Kai Uwe Broulik
https://bugs.kde.org/show_bug.cgi?id=391545

Kai Uwe Broulik  changed:

   What|Removed |Added

   Assignee|k...@privat.broulik.de   |kosse...@kde.org
Version|5.12.0  |5.12.3

-- 
You are receiving this mail because:
You are watching all bug changes.