URL: https://linuxfr.org/users/gnumdk/journaux/lollypop-0-9-0-est-sorti Title: Lollypop 0.9.0 est sorti Authors: gnumdk Date: 2015年03月06日T07:37:08+01:00 License: CC By-SA Tags: Score: 19 Bonjour, il y'a quelques mois, je vous présentais Lollypop, un lecteur de musique pour GNOME: http://linuxfr.org/users/gnumdk/journaux/lollypop-un-autre-lecteur-audio-pour-gnome Après quelques mois de dev, un changement de vie, de taf et un abonnement PRATIK à la SNCF, voici la version 0.9.0: http://gnumdk.github.io/lollypop/ Les nouveautés: - Ajout du support des playlists - Support de la synchronisation avec les périphériques MTP (pas fully tested vu que je n'ai que mon téléphone) - Une vue plein écran - Pas mal de modification interne avec une réécriture de pas mal de classes, on apprend de ses erreurs. Comme ce site est rempli de geeks, on va parler un peu technique pour le coup. Lors de la phase de dev, j'ai vite été confronté à un problème de taille, comment faire pour que mon lecteur ne rame pas comme Gnome Music ;) 1ere idée, faire mes requêtes SQLite dans un thread et ajouter mes items avec un GLib.idle_add qui attend que la boucle principale de la GLib soit non occupée. On ne peut pas faire l'ajout depuis un thread vu que Gtk n'est pas «thread safe». Il y avait du mieux mais sans que je sois pleinement satisfait, en effet, quand la boucle principal lance la fonction d'ajout, le programme reste bloqué jusqu'à la fin de cette dernière. Et voilà la solution que j'utilise partout dans Lollypop: ```python start_new_thread(view.populate, ()) # View def populate(self): items = db.get_items() GLib.idle_add(self._add_items, items) def _add_items(self, items): if len(items)> 0: item = items.pop(0) self._add_item(item) GLib.idle_add(self._add_items, items) ``` Du coup, on libère la boucle pour chaque élément, coder avec des threads en python gtk est super simple! Pour l’anecdote, je n'avais pas du tout eu l'idée d'ajouter une vue plein écran à la "AmarokFS" (vieux soft pour amarok 1) et en allant chez un pote à Paris, j'ai vu qu'il utilisait Clementine avec le mode OSD activé et des polices de caractère de la taille d'un immeuble. Son argument: "Oui c'est relou quand je suis devant l'ordi mais au moins, quand je suis dans mon canapé, je vois ce qui se passe" :) Allez, bisous les moules!