Home Forums Wiki Doc Install Extras Screenshots Source Code Projects Blog Users Groups Register
Glx-Dock / Cairo-Dock List of forums Git Version | Version Git MusicPlayer: DBus problems
The latest stable release is the *3.4.0* : How to install it here.
Note: We just switched from BZR to Git on Github! (only to host the code and your future pull requests)
Git Version | Version Git

Subjects Author Language Messages Last message
[Locked] MusicPlayer: DBus problems [Bug #52]
Page : 1 2
matttbe Français 23 lylambda [Read]
11 February 2011 à 00:29

matttbe, Friday 11 June 2010 à 19:37


Subscription date : 24 January 2009
Messages : 12573
Pour ne pas polluer le sujet MP: Nouvelles vues, je rapporte les problèmes avec DBus ici (uniquement avec les appli utilisant MPRIS)
D'ailleurs, avec Rhythmbox, tout fonctionne à merveille! (donc pour moi, pas un problème de "lag" mais plutôt de réception des données)

Je recopie mes deux derniers commentaires à ce sujet:

matttbe, Friday 11 June 2010 à 19:37


Subscription date : 24 January 2009
Messages : 12573
Il y a p-ê un problème avec DBus car je confirme le problème sur mon portable

Pour moi, le problème viendrait de l'écoute des signaux. Pour Clementine (un petit bug sur Maverick m'empêche d'en tester d'autres...), il envoie une notification avec l'image par dbus (presque 90.000 lignes avec byte XXX...)
method call sender=:1.1052 -> dest=org.freedesktop.Notifications serial=450 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify
D'un autre côté, la notification est bien affichée et il me semble que Qmmp ne faisait pas ceci... => pas d'embouteillage dans le bus à cause de ceci
Juste après l'envoi, des signaux sont envoyés:
signal sender=:1.1052 -> dest=(null destinationserial=474 path=/TrackList; interface=org.freedesktop.MediaPlayermember=TrackChange
   
array [
      
dict entry(
         
string "artist"
         
variant             string "Artiste"
      
)
      
dict entry(
         
string "location"
         
variant             string "file:///..."
      
)
      
dict entry(
         
string "time"
         
variant             int32 132
      
)
      
dict entry(
         
string "title"
         
variant             string "Titre"
      
)
   ]
method return sender=:1.17 -> dest=:1.1052 reply_serial=473
   uint32 44
signal sender
=:1.1052 -> dest=(null destinationserial=475 path=/TrackList; interface=org.freedesktop.MediaPlayermember=StatusChange
   struct 
{
      
int32 2
      int32 1
      int32 0
      int32 1
   
}
signal sender=:1.1052 -> dest=(null destinationserial=476 path=/TrackList; interface=org.freedesktop.MediaPlayermember=CapsChange
   int32 115
signal sender
=:1.1052 -> dest=(null destinationserial=477 path=/TrackList; interface=org.freedesktop.MediaPlayermember=CapsChange
   int32 115

Pour info, voici ce qui est envoyé si je modifie la playlist:
signal sender=:1.2374 -> dest=(null destinationserial=46 path=/TrackList; interface=org.freedesktop.MediaPlayermember=TrackListChange
   int32 4
method call sender
=:1.2367 -> dest=org.mpris.clementine serial=24 path=/TrackList; interface=org.freedesktop.MediaPlayermember=GetCurrentTrack
method 
return sender=:1.2374 -> dest=:1.2367 reply_serial=24
   int32 0

Petit détail, dbus-monitor me dit que le path est /TrackList pour tous alors qu'il devrait l'être uniquement pour TrackListChange (confirmation par d-feet). Cependant, je viens d'essayer en passant tous les signaux en /TrackList mais pas de changement

Sinon, en démarrant CD sans l'option de debug, j'obtiens uniquement ceci:
*** first container
cd_dbus_register_module_in_dir: assertion `pKeyFile != NULL' failed
Avec le debug, j'obtiens cette erreur après l'enregistrement de toutes les applets. Avant ça, j'obtiens ceci:
cairo-dock -ol debug |grep -i dbus
message 
:  (/opt/cairo-dock_bzr/cairo-dock-core/src/gldit/cairo-dock-dbus.c:cairo_dock_dbus_detect_application:229)  
  
cairo_dock_dbus_detect_application (org.gtk.vfs.Daemon)
message :  (/opt/cairo-dock_bzr/cairo-dock-core/src/gldit/cairo-dock-dbus.c:_dbus_detect_application:212)  
  
VFS Deamon found on DBus.
message :  (/opt/cairo-dock_bzr/cairo-dock-core/src/gldit/cairo-dock-dbus.c:cairo_dock_dbus_detect_application_async:187)  
  
cairo_dock_dbus_detect_application_async (org.mpris.clementine)
  
cairo_dock_activate_module (Dbus)
  
cairo_dock_instanciate_module (/home/matttbe/.config/cairo-dock/current_theme/plug-ins/Dbus/Dbus.conf)
message :  (/opt/cairo-dock_bzr/cairo-dock-plug-ins/Dbus/src/applet-init.c:init:41)  
  
init (/home/matttbe/.config/cairo-dock/current_theme/plug-ins/Dbus/Dbus.conf)
message :  (/opt/cairo-dock_bzr/cairo-dock-plug-ins/Dbus/src/applet-dbus.c:cd_dbus_launch_service:156)  
  
dbus Lancement du service
message 
:  (/opt/cairo-dock_bzr/cairo-dock-plug-ins/Dbus/src/applet-dbus.c:cd_dbus_main_class_init:52)  
message :  (/opt/cairo-dock_bzr/cairo-dock-plug-ins/Dbus/src/applet-dbus.c:cd_dbus_main_init:56)  
message :  (/opt/cairo-dock_bzr/cairo-dock-core/src/gldit/cairo-dock-dbus.c:_on_detect_application:148)  
debug   :  (/opt/cairo-dock_bzr/cairo-dock-core/src/gldit/cairo-dock-dbus.c:_free_detect_application:166)  
Puis en lançant Clementine:
message :  (/opt/cairo-dock_bzr/cairo-dock-core/src/gldit/cairo-dock-dbus.c:cairo_dock_dbus_detect_application:229)  
  
cairo_dock_dbus_detect_application (org.mpris.clementine)
message :  (/opt/cairo-dock_bzr/cairo-dock-core/src/gldit/cairo-dock-dbus.c:_dbus_detect_application:212)
Donc pas d'erreur apparemment...
Mais si je change de chanson, rien du côté des fonctions onChangePlaying_mpris et onChangeSong_mpris (j'ai décommenté des cd_debug dans mpris mais même, j'ai aucun message...). Par contre, si j'ajoute une musique à la playlist, c'est bien détecté par le dock...

Donc, si TrackListChange est détecté, c'est qu'il a qqc de spécial par rapport aux deux autres. Il est sur un path différent et il reçoit des info différentes, ce qui est correcte dans le code.
        myData.dbus_enable cd_musicplayer_dbus_connect_to_bus ();
        
        
myData.dbus_enable_shell musicplayer_dbus_connect_to_bus_Shell ();
        
        
dbus_g_proxy_add_signal(myData.dbus_proxy_player"StatusChange",
            
MP_DBUS_TYPE_PLAYER_STATUS_MPRIS,
            
G_TYPE_INVALID);
        
dbus_g_proxy_connect_signal(myData.dbus_proxy_player"StatusChange",
            
G_CALLBACK(onChangePlaying_mpris), NULLNULL);
        
        
dbus_g_proxy_add_signal(myData.dbus_proxy_player"TrackChange",
            
MP_DBUS_TYPE_SONG_METADATA,
            
G_TYPE_INVALID);
        
dbus_g_proxy_connect_signal(myData.dbus_proxy_player"TrackChange",
            
G_CALLBACK(onChangeSong_mpris), NULLNULL);
        
        
dbus_g_proxy_add_signal(myData.dbus_proxy_shell"TrackListChange",
            
MP_DBUS_TYPE_TRACKLIST_DATA,
            
G_TYPE_INVALID);
        
dbus_g_proxy_connect_signal(myData.dbus_proxy_shell"TrackListChange",
            
G_CALLBACK(onChangeTrackList_mpris), NULLNULL);
J'ai testé en changeant le path de dbus_proxy_player à dbus_proxy_shell mais ce n'est pas mieux. Serait-ce au niveau du type de données?
Pour le Status:
#define MP_DBUS_TYPE_PLAYER_STATUS_MPRIS (dbus_g_type_get_struct ("GValueArray", G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INVALID))
Et D-Feet me dit que c'est
Struct of (Int32, Int32, Int32, Int32)
Ce serait donc bon et d'ailleurs, si Clementine est lancé avant CD, la récupération via la méthode GetStatus est bonne (debug à l'appuie)
À noté aussi qu'il y a deux appels à la fonction cd_mpris_dbus_connect_to_bus dans ce fichier applet-mpris.c, la deuxième étant dans la fonction cd_mpris_configure. Peux-être un blocage à cause du double appel? Enfin, non, je ne vois pas la cause...

PS: on s'éloignerait pas un peu de la proposition de nouvelles vues pour MP ?

matttbe, Friday 11 June 2010 à 19:38


Subscription date : 24 January 2009
Messages : 12573
mais si tu lances le lecteur à partir du dock, il faut relancer l'applet quand même ?
Oui, que je le lance du dock ou via le menu, le problème est présent.
En fait, si le lecteur est lancé avant le dock, les info sont correctes mais uniquement pour la première chanson. Pour l'init, il regarde si le lecteur est présent et si oui, il récupère les info via la méthode GetMetadata. Mais il reste sourd (mauvaise écoute des signaux)

Idem avec qmmp en fait, il ne capte que le signal du TrackListChange:
method call sender=:1.32 -> dest=org.mpris.qmmp serial=84 path=/Player; interface=org.freedesktop.MediaPlayermember=Next
signal sender
=:1.96 -> dest=(null destinationserial=81 path=/TrackList; interface=org.freedesktop.MediaPlayermember=TrackListChange
   int32 2
signal sender
=:1.96 -> dest=(null destinationserial=82 path=/TrackList; interface=org.freedesktop.MediaPlayermember=TrackListChange
   int32 2
method call sender
=:1.32 -> dest=org.mpris.qmmp serial=85 path=/TrackList; interface=org.freedesktop.MediaPlayermember=GetCurrentTrack
method call sender
=:1.32 -> dest=org.mpris.qmmp serial=86 path=/TrackList; interface=org.freedesktop.MediaPlayermember=GetCurrentTrack
signal sender
=:1.96 -> dest=(null destinationserial=83 path=/Player; interface=org.freedesktop.MediaPlayermember=CapsChange
   int32 43
signal sender
=:1.96 -> dest=(null destinationserial=84 path=/Player; interface=org.freedesktop.MediaPlayermember=StatusChange
   struct 
{
      
int32 2
      int32 1
      int32 0
      int32 1
   
}
signal sender=:1.96 -> dest=(null destinationserial=85 path=/Player; interface=org.freedesktop.MediaPlayermember=CapsChange
   int32 39
signal sender
=:1.96 -> dest=(null destinationserial=86 path=/Player; interface=org.freedesktop.MediaPlayermember=StatusChange
   struct 
{
      
int32 0
      int32 1
      int32 0
      int32 1
   
}
signal sender=:1.59 -> dest=(null destinationserial=65 path=/org/ayatana/indicator/sound/service; interface=org.ayatana.indicator.soundmember=SinkInputWhileMuted
   boolean false
method 
return sender=:1.96 -> dest=:1.32 reply_serial=85
   int32 1
method 
return sender=:1.96 -> dest=:1.32 reply_serial=86
   int32 1
signal sender
=:1.96 -> dest=(null destinationserial=89 path=/Player; interface=org.freedesktop.MediaPlayermember=CapsChange
   int32 55
signal sender
=:1.96 -> dest=(null destinationserial=90 path=/Player; interface=org.freedesktop.MediaPlayermember=StatusChange
   struct 
{
      
int32 0
      int32 1
      int32 0
      int32 1
   
}
signal sender=:1.96 -> dest=(null destinationserial=91 path=/Player; interface=org.freedesktop.MediaPlayermember=TrackChange
   
array [
      
dict entry(
         
string "album"
         
variant             string "The Very Best of the Blues Brothers"
      
)
      
dict entry(
         
string "artist"
         
variant             string "Blues Brothers"
      
)
      
dict entry(
         
string "arturl"
         
variant             string ""
      
)
      
dict entry(
         
string "audio-bitrate"
         
variant             int32 128
      
)
      
dict entry(
         
string "audio-samplerate"
         
variant             uint32 44100
      
)
      
dict entry(
         
string "comment"
         
variant             string ""
      
)
      
dict entry(
         
string "genre"
         
variant             string "Rock"
      
)
      
dict entry(
         
string "location"
         
variant             string "file:///home/matttbe/Musique/21-Peter Gunn Theme.mp3"
      
)
      
dict entry(
         
string "mtime"
         
variant             int64 227710
      
)
      
dict entry(
         
string "time"
         
variant             int64 227
      
)
      
dict entry(
         
string "title"
         
variant             string "Peter Gunn Theme"
      
)
      
dict entry(
         
string "tracknumber"
         
variant             string "21"
      
)
      
dict entry(
         
string "year"
         
variant             string ""
      
)
   ]

lylambda, Saturday 12 June 2010 à 14:28


Subscription date : 06 September 2009
Messages : 1635
Je vais de nouveau remonter le bug aux devs de Guayadeque.
C'est énervant, cela a fonctionné quelques jours puis finis ...

fabounet, Tuesday 15 June 2010 à 15:23


Subscription date : 30 November 2007
Messages : 17118
j'ajoute une tache, mais franchement je ne vois pas quoi faire, car chez moi j'ai pas ces problèmes.

C'est énervant, cela a fonctionné quelques jours puis finis

fini suite à une maj du dock ou du lecteur ?

matttbe, Tuesday 15 June 2010 à 15:32


Subscription date : 24 January 2009
Messages : 12573
As-tu testé avec qmmp 0.4.0?

fabounet, Tuesday 15 June 2010 à 16:10


Subscription date : 30 November 2007
Messages : 17118
non j'ai pas pu l'installer.
j'ai cru comprendre que ça le faisait avec guayadeque sous Lucid aussi.

lylambda, Tuesday 15 June 2010 à 17:36


Subscription date : 06 September 2009
Messages : 1635
Voila le lien du rapport de bug que j'ai fait pour Guayadeque.

fini suite à une maj du dock ou du lecteur ?
Impossible à dire : à l'époque, les deux se sont mis à jour en même temps.

j'ai cru comprendre que ça le faisait avec guayadeque sous Lucid aussi.
Oui, ainsi que pour Quod Libet (testé à l'instant) et pour Exaile (testé il y a quelques semaines).

mais franchement je ne vois pas quoi faire
Arf , si c'est pas réparable, ça rend l'applet inutilisable avec les lecteurs en questions (autant contrôler le lecteur au raccourcis clavier).

matttbe, Tuesday 15 June 2010 à 19:14


Subscription date : 24 January 2009
Messages : 12573
j'ai cru comprendre que ça le faisait avec guayadeque sous Lucid aussi.
Oui, il y a un ppa et tu peux prendre la version guayadeque-svn

lylambda, Thursday 17 June 2010 à 00:57


Subscription date : 06 September 2009
Messages : 1635
Autre chose que j'ai noter avec Guayadeque, mais qui n'a vraisemblablement rien à voir avec MP : Lorsque le logiciel est lancé et fenêtré (donc pas minimisé dans le systray), son icône n’apparaît pas dans la zone dédié aux applications en cour. Par contre, elle apparaît dans l'applet "Selecteur de Bureau". Ce serait dut à un problème de classe ?

fabounet, Thursday 17 June 2010 à 12:54


Subscription date : 30 November 2007
Messages : 17118
c'est pas l'applet qui vole l'icône de la fenetre ?

lylambda, Thursday 17 June 2010 à 13:27


Subscription date : 06 September 2009
Messages : 1635
Si c'était le cas, pourquoi cela me le ferait que pour Guayadeque ? Dans le doute j'ai supprimer Switcher, mais toujours pas d'icône.

fabounet, Friday 18 June 2010 à 12:35


Subscription date : 30 November 2007
Messages : 17118
la classe qui serait pas la bonne ?
"guayadeque" dans le code (les majuscules comptent pas)

matttbe, Friday 18 June 2010 à 12:50


Subscription date : 24 January 2009
Messages : 12573
Chez moi, le lanceur est correct. Mais pas du côté des info des chansons...
As-tu essayé fab?
sudo add-apt-repository ppa:anonbeat/guayadeque
sudo apt-get update
sudo apt-get install guayadeque-svn

fabounet, Friday 18 June 2010 à 17:12


Subscription date : 30 November 2007
Messages : 17118
rappelle-le moi si on se croise sur IRC

matttbe, Friday 18 June 2010 à 18:48


Subscription date : 24 January 2009
Messages : 12573
Voilà (normalement tu seras chez toi en lisant ce message )

fabounet, Friday 18 June 2010 à 23:21


Subscription date : 30 November 2007
Messages : 17118
tests pas très concluant car lecteur très buggué, faudrait voir avec genre Amarok2 (oui je sais ... mais c'est pour la bonne cause )

lylambda, Saturday 19 June 2010 à 00:22


Subscription date : 06 September 2009
Messages : 1635
tests pas très concluant car lecteur très buggué
C'est vrais, il est clairement en beta. Mais je le trouve prometteur.
Pour cette histoire de classe, cela vient de lui aussi ? Si c'est le cas, je remonte aussi. Ce sera le 4ème bugs que je leur rapporterais .

lylambda, Monday 21 June 2010 à 19:50


Subscription date : 06 September 2009
Messages : 1635
Je continus ma quête du lecteur de musique parfait : utilisant majoritairement des lib gnome, ayant des fonctionnalités intéressantes et compatible avec MP.
Jusqu'à maintenant j'ai échoué .

  • Dernièrement j'ai de nouveau testé Exaile (dans une rev, j'ai cru voir qu'un bug avait été réglé avec ce lecteur), mais toujours les même problèmes de communication avec MP (plus quelques autres bug internes). Pourtant j'ai utilisé la dernière version en dev fournis par le ppa de WebUp8.
  • Sinon, j'ai essayé Clementine pour la première fois. Petit Amarok like trés bien fichu, il présente lui aussi les même soucis avec MP.


Du coup je me demande si ça viendrais pas de chez moi : à part Rythmbox, tout foire

matttbe, Tuesday 22 June 2010 à 00:32


Subscription date : 24 January 2009
Messages : 12573
Du coup je me demande si ça viendrais pas de chez moi : à part Rythmbox, tout foire
Oui, les autres que tu as cité utilise MPRIS...
Au fait, es-tu en 64bits?
uname -m
Sinon, il y a aussi Banshee ou Quotlibet

Git Version | Version Git

Subjects Author Language Messages Last message
[Locked] MusicPlayer: DBus problems [Bug #52]
Page : 1 2
matttbe Français 23 lylambda [Read]
11 February 2011 à 00:29


Glx-Dock / Cairo-Dock List of forums Git Version | Version Git MusicPlayer: DBus problems Top

Online users :

Powered by ElementSpeak © 2007 Adrien Pilleboue, 2009-2013 Matthieu Baerts.
Dock based on CSS Dock Menu (Ndesign) with jQuery. Icons by zgegball
Cairo-Dock is a free software under GNU-GPL3 licence. First stable version created by Fabounet.
Many thanks to TuxFamily for the web Hosting and Mav for the domain name.