|
fabounet, Monday 16 November 2009 à 12:28
|
|
|
matttbe, Wednesday 13 January 2010 à 14:23
|
|
|
fabounet, Wednesday 13 January 2010 à 14:42
|
|
Subscription date : 30 November 2007
Messages : 17118
|
aie.
peut-être un problème avec les chaines non UTF8 |
Subscription date : 08 November 2009
Messages : 9
|
J'ai enfin réussi à partir de la branche principal pour créer ma branche personnelle !
On dirait déjà qu'il affiche de l'UTF-8 dans un terminal ISO-8859-15, c'est normal ? J'aurais pensé à un problème inversé ?
Sinon j'avance lentement (voire très lentement) et pas forcément sûrement vers la version libmpdclient. Je suis reparti sur un double connexion pour éviter les problèmes que j'avais rencontrés, mais il reste quelques soucis :
- freeze en enregistrant la configuration
- impossible de redessiner l'icône en OpenGL (segfault), à la création de l'étiquette
Je vais tester car je n'avais pas encore fait de merge avec la branche principale et il me semble que ce code a changé, donc peut-être que la segfault n'est plus.
Edit : Toujours pareil (et en plus les changements dans certaines macro ne m'aident pas à garder un code compatible ^^) |
|
matttbe, Saturday 16 January 2010 à 17:17
|
|
Subscription date : 08 November 2009
Messages : 9
|
Pour le scroll horizontal, le fichier "cairo-dock-callbacks.c" (du code du Cairo-Dock lui-même) les bloque :
if (pScroll->direction != GDK_SCROLL_UP && pScroll->direction != GDK_SCROLL_DOWN) // on degage les scrolls horizontaux.
Donc ça ne marchera pas pour le moment.
Pour le shift+middle click, a priori ça ne fonctionne pas, je n'ai pas trouvé pourquoi.
Ensuite une donnée assez intéressante : quand on désactive les thèmes OpenGL, les clics marchent différemment, j'imagine que le code de gestion est différent.
Ce que j'ai compris c'est que les macro CD_APPLET_ON_MIDDLE_CLICK_BEGIN et CD_APPLET_ON_SCROLL_BEGIN gèrent le clic milieu et le scroll en Cairo
La macro CD_APPLET_ON_CLICK_BEGIN permet de gérer tous les boutons en OpenGL et juste le clic gauche en Cairo.
J'ai pourtant modifié le code partout pour gérer les évènements que j'ai rajouté.
Pour le freeze, c'est, semble-t-il, les thèmes OpenGL (j'ai peut-être pas assez attendu et c'est du au problème de nom de domaine ?).
En conclusion je me demandais si 30s d'un gars qui a l'habitude du code du dock ne serait pas plus productive que mes heures de recherche.
Je vais continuer de chercher, si vous avez des idées il ne faut pas hésité. =D
(J'ai du bidouiller des macros : CD_APPLET_ENTER et CD_APPLET_LEAVE car ma version du Dock ne les fournit pas, et la version de dev ne convient pas à mon utilisation intensive, je crois que je devrais me faire un petit environnement de dév…) |
|
matttbe, Sunday 17 January 2010 à 00:03
|
|
Subscription date : 24 January 2009
Messages : 12573
|
Oui mais si tu en exiges beaucoup .
Pour les scrolls horizontaux, ils ont en effet été viré car tu ne sais pas les utiliser partout .
Ensuite une donnée assez intéressante : quand on désactive les thèmes OpenGL, les clics marchent différemment, j'imagine que le code de gestion est différent. En effet, teste le thème Iphone ou Ipod
Pour le freeze, c'est, semble-t-il, les thèmes OpenGL (j'ai peut-être pas assez attendu et c'est du au problème de nom de domaine ?).
J'ai du bidouiller des macros : CD_APPLET_ENTER et CD_APPLET_LEAVE car ma version du Dock ne les fournit pas Normalement, si tu compiles la dernière version de Cairo-Dock (Core), tu devrais avoir accès aux thèmes . Tu ne peux pas l'installer ? (il est ultra recommandé d'utiliser les mêmes versions de core et ses plug-ins avec les changements dans l'API )
En conclusion je me demandais si 30s d'un gars qui a l'habitude du code du dock ne serait pas plus productive que mes heures de recherche. Tu peux l'appeler Fabounet, c'est plus clair pour tout le monde
la version de dev ne convient pas à mon utilisation intensive Attention tout de même à la consommation en ressources . Mais je suppose que tu sais très bien ce que tu fais  |
|
fabounet, Sunday 17 January 2010 à 00:59
|
|
Subscription date : 30 November 2007
Messages : 17118
|
j'ai pas trop compris le problème, mais les macros CD_APPLET_ON_xxx_BEGIN sotn juste des wrappers pour les callbacks des différents notifications.
il n'y a aucune différence entre le mode cairo et opengl, les seules différences sont sur le dessins. le clic gauche est celui qui génère le menu (et donc appelle CD_APPLET_ON_MENU_BUILD_BEGIN)
les scrolls horizonaux sont bloqués car inutilisables (vu que la plupart des gens n'ont pas cette possibilité, on ne peut pas faire de cas particuliers). |
|
matttbe, Thursday 25 March 2010 à 16:12
|
|
Subscription date : 21 October 2009
Messages : 1575
|
Très simple comme applic, à comparer à Amarok! lol |
Subscription date : 21 October 2009
Messages : 1575
|
Est-ce qu'il donne le time remaining au moins, lui? |
|
ppmt, Thursday 25 March 2010 à 16:35
|
|
Subscription date : 29 November 2007
Messages : 3520
|
Franksuse64, on dit "temps restant" en france
ah ces quebecquois |
|
matttbe, Thursday 25 March 2010 à 16:59
|
|
Subscription date : 24 January 2009
Messages : 12573
|
Pour le temps restant, c'est assez spécial et il parait ça peut différer d'un à l'autre
@ fabounet : voilà ce que j'ai pour le getmetadata d'après D-Feet : u'mtime': 338940L,
u'time': 338L,
Je comptais ajouter ceci : bzr diff applet-mpris.c
=== modified file 'musicPlayer/src/applet-mpris.c'
--- musicPlayer/src/applet-mpris.c 2010-03-25 00:53:37 +0000
+++ musicPlayer/src/applet-mpris.c 2010-03-25 15:54:41 +0000
@@ -306,11 +306,17 @@
value = (GValue *) g_hash_table_lookup(data_list, "length");
if (value == NULL)
+ value = (GValue *) g_hash_table_lookup(data_list, "mtime");
+ if (value != NULL && G_VALUE_HOLDS_INT(value))
+ myData.iSongLength = g_value_get_int(value) / 1000;
+ else
+ {
value = (GValue *) g_hash_table_lookup(data_list, "time");
- if (value != NULL && G_VALUE_HOLDS_INT(value))
- myData.iSongLength = g_value_get_int(value) / 1000;
- else
- myData.iSongLength = 0;
+ if (value != NULL && G_VALUE_HOLDS_INT(value))
+ myData.iSongLength = g_value_get_int(value);
+ else
+ myData.iSongLength = 0;
+ }
cd_message (" iSongLength <- %ds", myData.iSongLength);
g_free (myData.cPlayingUri); Mais je n'avais pas vu que ça se terminait par un 'L'. Du coup, faudait-il faire un g_value_get_string(value) puis 'parser' pour virer le L et caster le string en int ? (si !G_VALUE_HOLDS_INT(value) ?)
Sauf si L signifie 'lower' pour ne pas mettre de virgule et donc il pourrait avoir un B ou rien ? |
|
fabounet, Thursday 25 March 2010 à 18:51
|
|
Subscription date : 30 November 2007
Messages : 17118
|
ah cool je suis justement sur MP là !
et je cherchais comment obtenir le temps ave Amarok
par contre mtime n'apporte rien par rapport à time, et Amarok ne renvoit pas time (ni length d'ailleurs)
le L doit signifier long int je pense.
Edit : cool grâce à toi j'ai pu fixé Amarok ! c'était un int64 ... |
Subscription date : 21 October 2009
Messages : 1575
|
Yes!!!!!!! Dans le prochain bzr.  |
|
fabounet, Thursday 25 March 2010 à 20:29
|
|
Subscription date : 30 November 2007
Messages : 17118
|
yep, dernier commit dans 3h max  |
|
matttbe, Friday 26 March 2010 à 15:34
|
|
Subscription date : 24 January 2009
Messages : 12573
|
Cool  |
Subscription date : 21 October 2009
Messages : 1575
|
Je confirme, le temps restant fonctionne (du moins avec Amarok, les autres je ne sais pas).
On voit ceci :
Le seul hic est que pour l'instant même quand on ferme l'applic, l'album cover et le temps restant demeurent associé à l'applet MusicPlayer, ce qui est un peu bizarre, mais ce n'est pas majeur comme conception. Donc, on peut dire que c'est quasi-parfait.  |
|
matttbe, Wednesday 07 April 2010 à 23:29
|
|
Subscription date : 24 January 2009
Messages : 12573
|
Petite question: est-ce que toutes les applets sont lancées dans des threads séparés?
Car j'ai dû ajouter un petit temps de pause (250ms) pour l'affichage des données avec Banshee car parfois ça tardait à être "mis en ligne via DBus". Mais, je ne sais pas si c'est dû à ça mais aux changements de musiques, il y a deux coups lag dans le dock.
(et aussi, s'il y a un bug dans banshee, le dock free aussi) |
Subscription date : 30 November 2007
Messages : 17118
|
c'est quoi le problème avec Banshee exactement ?
les applets externes sont lancées dans un process à part, pas les autres (mais elles peuvent être threadées)
ok pour Amarok  |
|