Home Forums Wiki Doc Install Extras Screenshots Source Code Projects Blog Users Groups Register
Glx-Dock / Cairo-Dock List of forums Technical discussions | Discussions techniques Futur applet Music Player.
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)
Technical discussions | Discussions techniques

Subjects Author Language Messages Last message
Futur applet Music Player.
Page : 1 2 3 ...15 16 17
ChAnGFu Français 320 Guest [Read]
12 June 2018 à 05:04

ChAnGFu, Thursday 10 July 2008 à 01:08 | Quote


Subscription date : 17 January 2008
Messages : 1526
Salut tout le monde,

Pour facilité l'ajout de player, mav et moi avons décider de mettre en place un mini canevas a peu-pret identique a celui de rendering.
C'est a dire en créant un petit objet MusicPlayer qu'on remplira avec les différentes fonctions nécessaires.

Je mettrai a jour le topic a chaque changement dans le canevas pour les programmeurs souhaitant rajouter un player a l'applet.

Voila c'est tout pour l'instant.

Mav, Thursday 10 July 2008 à 01:14 | Quote


Subscription date : 29 November 2007
Messages : 3146
Comme dit dans d'autres topics, les fonctions pour exaile, banshee et listen sont prêtes
Listen est le moins favorisé de tous car ses fonctions dbus sont très limités.
Une fois le canevas effectué par Mr ChanGFu, il me restera à intégrer mon code et à passer aux autres lecteurs dans un second temps (mais bon on en est pas encore là hein ! :))

fabounet, Thursday 10 July 2008 à 11:42 | Quote


Subscription date : 30 November 2007
Messages : 17118
excellente initiative !

ChAnGFu, Friday 11 July 2008 à 03:09 | Quote


Subscription date : 17 January 2008
Messages : 1526
Alors aux dernières nouvelles le canevas est bientôt prêt, il ne me manque plus qu'a bosser sur la partie notification.

Ensuite viendra le gros du travail, remanier xmms pour l'intégrer a MP et debugger tout ca! Une fois terminé, je commiterai pour que Mav s'amuse avec.

Voici la structure principale du canevas, ce sera elle qui sera remplis par chaque greffon ajouter a l'applet pour le controle d'un lecteur:
typedef void (* MusicPlayerAcquireDataFunc) (void);
typedef void (* MusicPlayerReadDataFunc) (void);
typedef void (* MusicPlayerFreeDataFunc) (void);
typedef void (* MusicPlayerConfigureFunc) (void);
typedef void (* MusicPlayerControlerFunc) (MyPlayerControl pControl);

struct _MusicPlayerHandeler {
    
MusicPlayerAcquireDataFunc         acquisition;
    
MusicPlayerReadDataFunc         read_data;
    
MusicPlayerFreeDataFunc         free_data;
    
MusicPlayerConfigureFunc        configure;
    
MusicPlayerControlerFunc        control;
    
gchar                    *appclass;
    
gchar                     *name//Servira a repérer le lecteur dans la GList.
};


Je posterai plus de précision quand je me battrai avec xmms

fabounet, Friday 11 July 2008 à 10:47 | Quote


Subscription date : 30 November 2007
Messages : 17118
Servira a repérer le lecteur dans la GList

si tu as une liste d'éléments repérés par une chaîne, il est peut-être plus judicieux d'utiliser une table de hashage.
Aussi je te conseille de faire un fork de l'applet xmms, histoire qu'elle continue à fonctionner le temps que la nouvelle soit opérationnelle

Mav, Friday 11 July 2008 à 11:13 | Quote


Subscription date : 29 November 2007
Messages : 3146
Je pense que c'est le but Mr Fabounet, d'ailleurs RB va y passer aussi (y a pas de raisons :))

ChAnGFu, Saturday 12 July 2008 à 19:54 | Quote


Subscription date : 17 January 2008
Messages : 1526
Je viens au nouvelle pour signaler que le canevas est prêt et pratiquement fonctionnel.
J'y ai déjà inclue xmms.

Je commiterai apres les tests (vers 17h GMT -4)

Edit: C'est sur le svn => svn checkout http://svn.berlios.de/svnroot/repos/cairo-dock/trunk/plug-ins/musicPlayer

ChAnGFu, Saturday 12 July 2008 à 21:41 | Quote


Subscription date : 17 January 2008
Messages : 1526
Mav a toi de jouer, si tu as des problèmes n'hésite pas a demander.

fabounet, Sunday 13 July 2008 à 01:42 | Quote


Subscription date : 30 November 2007
Messages : 17118
par contre maintenant y'a 2 plug-ins musicplayer, on prend lequel (celui avec un 'p' ou celui avec un 'P' ?)

ChAnGFu, Sunday 13 July 2008 à 17:31 | Quote


Subscription date : 17 January 2008
Messages : 1526
avec un P

Mav, Sunday 13 July 2008 à 20:23 | Quote


Subscription date : 29 November 2007
Messages : 3146
Je rentre lundi soir donc je m y mets dès que possible

Mav, Thursday 17 July 2008 à 01:24 | Quote


Subscription date : 29 November 2007
Messages : 3146
Hello everybody !

Bon comme je languissais un peu, j'ai commencé alors que j'étais en vacs (je vous assure, récupérer les fichiers un par un par le WebSVN en 3G, c'est pas de la tarte ! :))
J'ai donc intégrer Exaile (commité en rev 1205) mais avec un support minimal pour le moment

Ce qui marche (à peu près) :
- l'affichage des titres en info-bulles lors du changement de piste
- le controle basique du lecteur au clic (play/pause/next/previous)
- l'état de lecture est présent en icone comme en desklet
- l'affichage du temps écoulé et du temps restant est OK

Ce qui ne marche pas (pour le moment) :
- impossible d'utiliser une fonction que j'ai rempli dans le handeler, Mr ChangFu, lors de l'appel à pMeasureTimer ca passe impec mais si j'appelle la fonction seule, ca passe pas (j'ai colmaté pour le moment en appellant la fonction directement :))
- quelques infos sont manquantes, notamment la track number (exaile a décidé que c'était pas important donc on mettait pas ca en méthode DBus...) et le temps écoulé (là c'est encore plus comique, il donne le temps total mais pour le temps écoulé, c'est en pourcentage donc bah faut faire le piti calcul qui va bien mais pas eu le courage ce soir) Toujours le problème de Track Number mais c'est irresolvable
- le dessin est pour le moment approximatif, je me suis surtout occupé d'homogénéiser au max avec ta structure
- les pochettes (mais ca ne saurait tarder, c'est qu'une question de dessin)

J'ai encore un dernier truc qui n'est pas propre et qu il faudra que je change (ou pas, car le fait que exaile n'ait pas de signaux est chiant à gérer), c'est la connexion DBus, je suis obligé de la vérifier à chaque requête, ce qui est assez lourd

J'ai commité pour que changfu puisse corriger (j'ai pas touché à ton code, sauf à une comparaison dans draw, tu verras, chez moi elle cacatait) et que je puisse y avoir accès demain à l'école si le cours est chiant
J'ai laissé un max de debugs pour le moment donc t'inquiète pas si ca défile

Bonne nuit !

EDIT du 19/07 : avancement

Mav, Saturday 19 July 2008 à 20:06 | Quote


Subscription date : 29 November 2007
Messages : 3146
Yo !

L'intégration de exaile est quasi terminée, il faut juste que je rajoute une fonction à cairo-dock pour Dbus dans le fichier cairo-dock-dbus.c.
J'ai juste un souci; c'est pour gérer la classe du lecteur. Quand je rentre dans le handeler toutes les infos, il plante quelque soit la valeur que je mette sauf "Exaile".
Voici mon remplissage :
pExaile->appclass = g_strdup("exaile.py");
pExaile->name = g_strdup("Exaile");


Mais quand je fais un xprop sur la fenêtre, j'ai ca en retour :
WM_CLASS(STRING) = "exaile.py", "Exaile.py"
WM_ICON_NAME(STRING) = "Lecteur de musique Exaile"
WM_NAME(STRING) = "Lecteur de musique Exaile"


Donc en gros, je ne peux pas ouvrir le lecteur en cliquant sur l'icone du plugin mais par contre, si je l ouvre à la main, il est bien géré, et s'intègre au plugin.
Bref, je ne comprends pas pourquoi quand je mets pExaile->name = g_strdup("Lecteur de musique Exaile") ca se vautre comme une grosse loutre bourrée à la bière dès le démarrage.

Une idée ?

Mav, Saturday 19 July 2008 à 20:23 | Quote


Subscription date : 29 November 2007
Messages : 3146
J'ai rencontré 3 autres problèmes :

- lors du premier chargement, le texte sur l'icone ne se met pas à jour, il reste avec l'étiquette MusicPlayer (faut que je vois d'où ca vient dans la fonction de dessin), la chanson suivante, tout est ok !
- lors d'un clic droit, si on va dans le sous-menu exaile, il plante, au lieu d'afficher le About, ca j'ai pas trouvé d'où ca vient !
- j'ai des plantages de temps en temps, si je ferme exaile, CD me dit 'Out of memory', je pense qu'il essaye d'accéder à des infos sur dbus mais le bus n'existe plus sur le proxy DBus, normalement ce cas est géré mais je vois pas du tout pourquoi ca plante (surement au thread lancé par pMeasureTimer(), parce que ca le fait pas tout le temps.

Pour l'affichage de la pochette, j'arrive à récupérer le chemin de la pochette, je sais où l'afficher mais on va perdre les icones d'état de lecture, y a pas moyen de mettre des emblèmes plutôt qu'un fichier en dur pour chaque état ? Ca nous aiderait pour avoir la pochette avec un emblème de l'état de la lecture.

nochka85, Saturday 19 July 2008 à 23:49 | Quote


Subscription date : 29 November 2007
Messages : 7408
C'est pour quand le support Rhythmbox ?

Mav, Sunday 20 July 2008 à 00:25 | Quote


Subscription date : 29 November 2007
Messages : 3146
Un peu après quand même, le temps que j'intègre les lecteurs qui gèrent dbus à moitié (ou comme un pied ! Listen pour ne pas le citer :))
Ensuite j evais intégrer les lecteurs qui gèrent totalement Dbus

nochka85, Sunday 20 July 2008 à 02:11 | Quote


Subscription date : 29 November 2007
Messages : 7408
Cool !

ChAnGFu, Sunday 20 July 2008 à 22:25 | Quote


Subscription date : 17 January 2008
Messages : 1526
Le plantage lors de l'affichage du menu contextuel est due a l'interrogation de l'handeler par l'applet sur l'état des fonctions supportées.
J'ai corrigée normalement.

Pour l'affichage de la pochette c'est simple. On rajoute un gboolean bUseCover, puis un petit if (bUseCover) dans applet-draw.c entraîne le dessin de la pochette et affiche en emblème l'état de la lecture.

Aussi dans applet-dbus.c, je ne suis pas daccord avec le faite que ce soit la qu'on renseigne les services et méthodes, elle devrai se faire dans la fonction de configuration de l'handeler (void cd_exaile_dbus (void)) tout doit être le plus décentralisé que possible.

Laisse Exaile comme nom, ça sert juste a différencier un handeler dun autre et à être mis en étiquette.

nochka85, Sunday 20 July 2008 à 22:33 | Quote


Subscription date : 29 November 2007
Messages : 7408
Pour l'affichage de la pochette, j'ai fais une proposition dans le topic de l'applet Rhythmbox -> ici : http://www.glx-dock.org/bg_topic.php?t=52&pos=220

En gros pouvoir régler les coordonnées des 4 coins pour déformer l'image et pouvoir faire ceci (toujours avec une image de fond et une image de reflet ... ou d'avant-plan ):

http://pix.nofrag.com/3/a/e/61d9473a36ec0938e936bf6e89299.png
(c'est un mockup )

Est-ce que c'est possible techniquement ?

ChAnGFu, Sunday 20 July 2008 à 22:42 | Quote


Subscription date : 17 January 2008
Messages : 1526
Honnêtement je ne sais pas si la libcairo permet se genre de déformation, seul fabounet peux nous éclairer

Technical discussions | Discussions techniques

Subjects Author Language Messages Last message
Futur applet Music Player.
Page : 1 2 3 ...15 16 17
ChAnGFu Français 320 Guest [Read]
12 June 2018 à 05:04

Post a message

Anti-spam filter 4 (*) times (*) 2 =
            
Did you know ? The Math tag can display mathematical formula. Check LaTex syntax for more information


Glx-Dock / Cairo-Dock List of forums Technical discussions | Discussions techniques Futur applet Music Player. Top

Online users : jayamahe,

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.