Journal Lollypop 0.9.0 est sorti

Posté par (page perso) . Licence CC by-sa
Tags : aucun
19
6
mar.
2015

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:

    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!

  • # ce qui me manque personnellement dans les lecteurs audio

    Posté par (page perso) . Évalué à 3.

    pouvoir définir un renderer upnp comme sortie audio directement dans le lecteur. Ainsi, on écoute tranquillement sa musique sur son pc mais si on souhaite avoir le rendu sur un xbmc branché à un home cinéma, un bouton pour basculer la sortie audio et hop, c’est fait ! Ça se serait vraiment cool, hors je ne trouve rien qui permette cela facilement… c’est dommage

    • [^] # Re: ce qui me manque personnellement dans les lecteurs audio

      Posté par (page perso) . Évalué à 2.

      Oui, mon colloc faisait cela sous son MacOSX… Mais j'ai jamais vu l’intérêt par rapport à un récepteur bluetooth, c'est plus lent avec DLNA…

      Ca devrait être faisable avec Rygel/Pulseaudio mais j'ai jamais réussi…
      https://wiki.gnome.org/action/show/Projects/Rygel

      Le seul truc que je comprend pas, c'est que Itunes demande à XBMC de venir lire en UPNP les fichiers présent sur la machine alors que dans ce que j'ai lu dans la doc de Rygel, il s'agit de rediriger le son vers XBMC…

      Bref, j'y pige pas grand chose…

      • [^] # Re: ce qui me manque personnellement dans les lecteurs audio

        Posté par (page perso) . Évalué à 2.

        ça a un intérêt réel quand tu n’as pas de bluetooth et pas envie d’en avoir alors que tu as du matériel qui permettrait de le faire autrement. De plus activer le bluetooth sur un ordinateur portable est consommateur de batterie…

        upnp permet plusieurs cas de figures :
        - on redirige le son vers un renderer (je suis sur mon pc, je veux que le son sorte sur mon Raspberry Pi)
        - on partage des fichiers et c’est à un client d’y accéder (je suis sur le Raspberry Pi et je veux lire un fichier qui est sur un serveur)
        - controler (je suis sur mon téléphone et je veux controler mon Raspberry Pi)

        Rygel est censé permettre tout cela mais je n’ai jamais réussi non plus

        • [^] # Re: ce qui me manque personnellement dans les lecteurs audio

          Posté par . Évalué à 3.

          C'est possible avec pulseaudio + rygel. Rygel permet d'envoyer en DLNA. Tu peux choisir la sortie avec pavucontrol par application (tu peux avoir ton navigateur en local et ton lecteur de musique sur kodi, ou l'inverse ;-) ) . Ça marche impec, il y a juste un peu de latence due au réseau.

          Pour une soirée, j'avais fait ça avec deux chromium, un en sortie locale, l'autre en DLNA. Il faut gérer les quelques secondes de latence mais ça le fait.

          https://wiki.gnome.org/Projects/Rygel/Pulseaudio

  • # Olala

    Posté par (page perso) . Évalué à 1.

    Bon, je suis sur Arch, c’est peut-être la "raison" des plantages suivants :

    • Dans les préférences, le bouton close fait planter l’appli :

      You need to add a music path to org.gnome.Lollypop in dconf
      bla bla erreur bla bla

      En positionnant le répertoire où chercher la musique, ça va déjà beaucoup mieux, du coup un petit test serait le bienvenu je crois :-P

    • Party mode plante aussi avec un très long message que je ne posterai pas ici

    Apparemment il n’y a pas d’issues, mais il faudrait peut-être que tu essayes de repartir sur des conf vides pour faire des tests ?

    Love – bépo

    • [^] # Re: Olala

      Posté par (page perso) . Évalué à 2.

      Effectivement, il manquait un test :p

      C'est bizarre, je ne comprend pas pourquoi sur certaine machine GLib.USER_DIRECTORY_MUSIC n'existe pas… A priori cela n'a pas de lien avec xdg-dirs :-(

      Sinon, pour la party mode, bug report sur github ;)

      • [^] # Re: Olala

        Posté par (page perso) . Évalué à 2.

        Pour le party mode, j'ai compris ce que tu voulais dire :) Fixed.

  • # ubuntu trusty

    Posté par (page perso) . Évalué à 1.

    Tu prévois de rajouter les builds pour trusty bientôt ?

    Je me suis fait avoir, j'ai voulu tester et j'ai eu droit à la vieille version….

    • [^] # Re: ubuntu trusty

      Posté par (page perso) . Évalué à 2.

      Je veux plus me prendre la tête avec trusty, trop de bug dans GTK… :(

      En gros, le paquet vivid fonctionne avec Gtk 3.14 de chez elementary et en désinstallant les "scrollbar overlay"…

      Normalement, Canonical va virer "scrollbar overlay" pour vivid (Whaou)

      • [^] # Re: ubuntu trusty

        Posté par (page perso) . Évalué à 1.

        c'est ballot de ne pas supporter une version LTS !

        C'est infaisable ou tu remets ça à plus tard ?

  • # Lollypop, c'est pas Android 5.0 ?

    Posté par . Évalué à 3.

    en tout cas, gaffe au proces de la part de google :p

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.