IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ Discussion :

[Ruby] Boucles Gtk et GLib


Sujet :

GTK+

  1. #1
    Membre émérite

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 552
    Par défaut [Ruby] Boucles Gtk et GLib
    Bonjour.

    J'utilise GStreamer pour obtenir une empreinte de fichiers audios (bibliothèque ofa). Pour l'instant, je teste le calcul des empreintes sans gui. J'ai créée une classe contenant un pipeline gstreamer et une boucle principale (GLib::MainLoop). Je lance le calcul de l'empreinte puis la boucle. Lorsque le calcul est terminé, GStreamer émet un signal eos. J'intercepte ce signal pour stopper la boucle principale. J'acquiers alors l'empreinte.

    Je veux maintenat intégrer ce code dans une application graphique codé en ruby/Gtk. Un bouton permettra le lancement du pipeline et de la boucle glib. Est-il raisonnable d'avoir deux boucles glib (la boucle gtk et la boucle créée pour le calcul d'empreintes) ? Comment glib gère ce cas ? À quoi faut-il faire attention ? Ma gui semble ne pas être bloquée par la deuxième boucle ? Les deux boucles sont-elles en paralèlles (pas au sens strict) ?

    Bien que je n'ai pas eu de problèmes dans mes quelques essais, je me pose des questions. Il y a-t-il de la documentation (pas trop ardue, je "débute" en programmation) ?

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Tu dois pouvoir tout (la GUI et la génération d'empreintes) faire passer par la même mainloop (la mainloop gtk+). 2 mainloops en parallèle, ça ne me choque pas, par contre il risque d'y avoir quelques subtilités de temps à autre si ton appli devient plus complexe.

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 552
    Par défaut
    Merci teuf13 pour cette réponse.

    Je me doute que je peux tout faire passer dans la boucle de gtk mais j'ai du mal à voir comment.

    La deuxième bloucle s'achève à la fin du calcul de l'empreinte. Çà simplifie l'obtention de la valeur de l'empreinte. variable_empreinte=calcul_empreinte(varaibles_entrée) Grâce à la boucle, la méthode calcul_empreinte est bloquante.

    Si j'abandonne cette boucle, je suppose qu'il faut que je passe par l'utilisation de signaux mais j'arrive pas à voir comment implémenter simplement ces signaux.

    Si l'utilisation de deux boucles ne pose pas de problème, je vais garder cette solution. La deuxième boucle ne fait pas partie du code principal, elle ne devrait pas trop se complexifier.

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Citation Envoyé par vinc-mai Voir le message
    Je me doute que je peux tout faire passer dans la boucle de gtk mais j'ai du mal à voir comment.
    Je crois qu'il n'y a rien de particulier à faire, tu crées ton pipeline gstreamer, tu te connectes au signal eos, tu lances ta boucle gtk+ et les choses se passent bien. Ou bien il faut peut être que la boucle tourne déjà quand tu lances ton pipeline, je sais plus. Ca fait bien longtemps que j'ai pas regardé ça en détail

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 552
    Par défaut
    Je vais y arriver!
    Çà demande juste une réorganisation interne d'une classe qui s'attend à à ce que le calcul soit bloquant. Merci. Bon je passe le fil à résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [GTK+/Glib] boucle et IHM
    Par Skarsnick dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 24/11/2009, 15h42
  2. Ruby et GTK (gem_original_require)
    Par stefh7 dans le forum Ruby
    Réponses: 6
    Dernier message: 18/07/2008, 10h13
  3. Impossible d'installer GTK-2.11.6 à cause de la GLIB
    Par nicolas.sitbon dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 15/08/2007, 16h49
  4. Réponses: 4
    Dernier message: 15/08/2007, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo