Traduire un script ruby pour vérifier un bug
Bonjour.
J'obtiens un bug assez dur à reproduire lorsque j'utilise conjointement ruby/gtk2 et ruby/gst ("bindings" pour GStreamer). J'ai circonscrit la reproduction du bug à script ruby d'une quarantaine de lignes. Lorsque le bug est reproduit, l'interface graphique "freeze". L'apparition du bug semble dépendre de la configuration de l'ordinateur. En particulier la présence d'un proxy semble supprimer le bug.
J'aimerai essayer de connaitre l'origine de ce bug. Pour éliminer les bibliothèques ruby de mes suspicions, j'aimerai tester le un script équivalent en python.
Quelqu'un pourrait-il traduire ce code ruby afin que je teste avec la même configuration ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#!/usr/bin/env ruby
# encoding: UTF-8
require 'gtk2'
require 'gst'
class Player
def initialize
@soup=Gst::ElementFactory.make('souphttpsrc')
end
def play
@soup.location='http://mp3.live.tv-radio.com/centpourcent/all/centpourcent-128k.mp3'
p "Going to play..."
#@soup.play##Freeze
#Thread.new{@soup.play}.join##Freeze
Thread.new{@soup.play}#Do not Freeze
p "Playing."
end
end
class Gui
def initialize(player)
@player=player
@bstop=Gtk::Button.new('Stop')
@bstop.signal_connect('clicked'){@player.stop}
@bplay=Gtk::Button.new('Play')
@bplay.signal_connect('clicked'){@player.play}
@box=Gtk::HBox.new
@box.pack_start(@bstop)
@box.pack_start(@bplay)
@window=Gtk::Window.new
@window.add(@box)
@window.show_all
@window.signal_connect("delete_event"){Gtk.main_quit; true}
end
end
player=Player.new
gui=Gui.new(player)
Gtk.main |
Si vous avez des questions sur le code ruby, n'hésitez pas à les poser.