Bonjour !
Je développe actuellement un player léger basé sur Gstreamer. J'en suis au tout début.
Actuellement j'ai une scale barre qui est actualisé tout les 200 ms grâce à g_timeout_add par une fonction qui met à jour l'adjustment à partir de la position obtenu par Gstreamer.
Pour j'ai mis la scale bar en Update Discontinuous, et pour éviter le problème de ma fonction qui change la position du scale pendant qu'il slide dessus, je n'ai pas utilisé le signal "value_changed" pour lancer ma fonction de seek dans le morceau.
A la place j'ai utilisé les signal de button-press-event et button-release-event. Au premier, ma fonction ferme un verrou pour que mon timeout ne touche plus à ma scale bar. Au deuxième, j'émet moi-même le signal "value_changed" sur la scale pour qu'elle update l'adjustment, puis je fais le seek avec Gstreamer en fonction de la valeur de l'ajustment.
Actuellement tout se passe très bien si l'utilisateur fait un drag&drop avec le curseur de ma scale bar.
J'en arrive à mon problème :
Comment faire pour qu'un click n'importe où sur ma scale amène directement le curseur à cet endroit plutôt que de le faire bouger de la valeur page_increment de l'adjustment ?
(Comme dans Rhythmbox, j'ai cherché dans le code source, mais pas trouvé)
Merci beaucoup d'avance !!
Bonne soirée,
Guilro
Partager