def __init__(self): gtk.EventBox.__init__(self) self.modify_bg(gtk.STATE_NORMAL, get_colors("drawingplayer")) vbox = gtk.VBox() self.toolbar_record = ToolbarGrabar() self.video_visor = VideoVisor() #self.efectos_aplicados = Efectos_en_Pipe() self.buffer_info = BufferInfo() self.toolbar_info = ToolbarInfo() self.progress = ProgressPlayer() vbox.pack_start(self.toolbar_record, False, False, 0) vbox.pack_start(self.video_visor, True, True, 0) #vbox.pack_start(self.efectos_aplicados, False, False, 0) vbox.pack_start(self.buffer_info, False, False, 0) vbox.pack_start(self.toolbar_info, False, False, 0) vbox.pack_start(self.progress, False, False, 0) self.add(vbox) self.show_all() self.toolbar_record.connect("stop", self.__emit_stop_record) self.video_visor.connect("ocultar_controles", self.__emit_show_controls) self.video_visor.connect("button_press_event", self.__set_fullscreen) self.toolbar_info.connect("rotar", self.__emit_rotar) self.toolbar_info.connect("actualizar_streamings", self.__emit_actualizar_streamings) self.progress.connect("seek", self.__emit_seek) self.progress.connect("volumen", self.__emit_volumen)
def __init__(self): gtk.EventBox.__init__(self) self.modify_bg(gtk.STATE_NORMAL, COLORES["text"]) self.player = False self.video_path = "" vbox = gtk.VBox() self.visor = Visor() self.progress = ProgressPlayer() self.control = PlayerControls() vbox.pack_start(self.visor, True, True, 0) vbox.pack_start(self.progress, False, True, 0) vbox.pack_start(self.control, False, True, 0) self.add(vbox) self.show_all() self.control.connect("accion-controls", self.__control) self.progress.connect("seek", self.__seek) self.progress.connect("volumen", self.__volumen)
class Izquierda(gtk.EventBox): __gsignals__ = { "show-controls": (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT, )), 'rotar': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_STRING, )), 'actualizar_streamings': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []), 'stop-record': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []), "seek": (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_FLOAT, )), "volumen": (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_FLOAT, )) } def __init__(self): gtk.EventBox.__init__(self) self.modify_bg(gtk.STATE_NORMAL, get_colors("drawingplayer")) vbox = gtk.VBox() self.toolbar_record = ToolbarGrabar() self.video_visor = VideoVisor() #self.efectos_aplicados = Efectos_en_Pipe() self.buffer_info = BufferInfo() self.toolbar_info = ToolbarInfo() self.progress = ProgressPlayer() vbox.pack_start(self.toolbar_record, False, False, 0) vbox.pack_start(self.video_visor, True, True, 0) #vbox.pack_start(self.efectos_aplicados, False, False, 0) vbox.pack_start(self.buffer_info, False, False, 0) vbox.pack_start(self.toolbar_info, False, False, 0) vbox.pack_start(self.progress, False, False, 0) self.add(vbox) self.show_all() self.toolbar_record.connect("stop", self.__emit_stop_record) self.video_visor.connect("ocultar_controles", self.__emit_show_controls) self.video_visor.connect("button_press_event", self.__set_fullscreen) self.toolbar_info.connect("rotar", self.__emit_rotar) self.toolbar_info.connect("actualizar_streamings", self.__emit_actualizar_streamings) self.progress.connect("seek", self.__emit_seek) self.progress.connect("volumen", self.__emit_volumen) def __emit_volumen(self, widget, valor): self.emit('volumen', valor) def __emit_seek(self, widget, valor): self.emit("seek", valor) def __emit_stop_record(self, widget): self.emit("stop-record") def __emit_actualizar_streamings(self, widget): self.emit('actualizar_streamings') def __emit_rotar(self, widget, sentido): self.emit('rotar', sentido) def __set_fullscreen(self, widget, event): if event.type.value_name == "GDK_2BUTTON_PRESS": win = self.get_toplevel() widget.set_sensitive(False) screen = win.get_screen() w, h = win.get_size() ww, hh = (screen.get_width(), screen.get_height()) if ww == w and hh == h: win.set_border_width(2) gobject.idle_add(self.__set_full, win, False) else: win.set_border_width(0) gobject.idle_add(self.__set_full, win, True) widget.set_sensitive(True) def __set_full(self, win, valor): if valor: win.fullscreen() else: win.unfullscreen() def __emit_show_controls(self, widget, valor): zona, ocultar = (valor, self.toolbar_info.ocultar_controles) self.emit("show-controls", (zona, ocultar)) def setup_init(self): map(ocultar, [self.toolbar_record, self.buffer_info]) #, self.efectos_aplicados]) self.toolbar_info.set_video(False) self.progress.set_sensitive(False) def set_ip(self, valor): self.toolbar_info.set_ip(valor)
class VideoPlayer(gtk.EventBox): __gsignals__ = { "full": (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []), "endfile": (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []), } def __init__(self): gtk.EventBox.__init__(self) self.modify_bg(gtk.STATE_NORMAL, COLORES["text"]) self.player = False self.video_path = "" vbox = gtk.VBox() self.visor = Visor() self.progress = ProgressPlayer() self.control = PlayerControls() vbox.pack_start(self.visor, True, True, 0) vbox.pack_start(self.progress, False, True, 0) vbox.pack_start(self.control, False, True, 0) self.add(vbox) self.show_all() self.control.connect("accion-controls", self.__control) self.progress.connect("seek", self.__seek) self.progress.connect("volumen", self.__volumen) def __endfile(self, widget=None, senial=None): self.emit("endfile") def __update_progress(self, objetoemisor, valor): self.progress.set_progress(float(valor)) def __state_changed(self, widget=None, valor=None): if "playing" in valor: self.control.set_playing() elif "paused" in valor or "None" in valor: self.control.set_paused() else: print "Estado del Reproductor desconocido:", valor def __seek(self, widget, valor): if self.player: self.player.set_position(valor) def __volumen(self, widget, valor): if self.player: self.player.set_volumen(valor) def __control(self, widget, accion): if accion == "stop": if self.player: self.player.stop() elif accion == "stop_and_unfull": if self.player: self.player.stop() self.emit("endfile") elif accion == "pausa-play": if self.player: self.player.pause_play() elif accion == "full": self.emit("full") def load(self, path): self.video_path = path volumen = 10 xid = self.visor.get_property('window').xid self.player = JAMediaReproductor(xid) self.player.connect("endfile", self.__endfile) self.player.connect("estado", self.__state_changed) self.player.connect("newposicion", self.__update_progress) self.player.load(path) self.player.play() self.player.set_volumen(volumen) #self.progress.volumen.set_value(volumen / 10) return False def stop(self): if self.player: # FIXME: No funciona en la XO con Fedora 11 #volumen = float("{:.1f}".format( # self.progress.volumen.get_value() * 10)) self.player.stop() self.player.disconnect_by_func(self.__endfile) self.player.disconnect_by_func(self.__state_changed) self.player.disconnect_by_func(self.__update_progress) del(self.player) self.player = False def pause(self): if self.player: self.player.pause()
class Izquierda(gtk.EventBox): __gsignals__ = { "show-controls": (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,)), 'rotar': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_STRING,)), 'actualizar_streamings': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []), 'stop-record': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []), "seek": (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_FLOAT, )), "volumen": (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_FLOAT,))} def __init__(self): gtk.EventBox.__init__(self) self.modify_bg(gtk.STATE_NORMAL, get_colors("drawingplayer")) vbox = gtk.VBox() self.toolbar_record = ToolbarGrabar() self.video_visor = VideoVisor() #self.efectos_aplicados = Efectos_en_Pipe() self.buffer_info = BufferInfo() self.toolbar_info = ToolbarInfo() self.progress = ProgressPlayer() vbox.pack_start(self.toolbar_record, False, False, 0) vbox.pack_start(self.video_visor, True, True, 0) #vbox.pack_start(self.efectos_aplicados, False, False, 0) vbox.pack_start(self.buffer_info, False, False, 0) vbox.pack_start(self.toolbar_info, False, False, 0) vbox.pack_start(self.progress, False, False, 0) self.add(vbox) self.show_all() self.toolbar_record.connect("stop", self.__emit_stop_record) self.video_visor.connect("ocultar_controles", self.__emit_show_controls) self.video_visor.connect("button_press_event", self.__set_fullscreen) self.toolbar_info.connect("rotar", self.__emit_rotar) self.toolbar_info.connect("actualizar_streamings", self.__emit_actualizar_streamings) self.progress.connect("seek", self.__emit_seek) self.progress.connect("volumen", self.__emit_volumen) def __emit_volumen(self, widget, valor): self.emit('volumen', valor) def __emit_seek(self, widget, valor): self.emit("seek", valor) def __emit_stop_record(self, widget): self.emit("stop-record") def __emit_actualizar_streamings(self, widget): self.emit('actualizar_streamings') def __emit_rotar(self, widget, sentido): self.emit('rotar', sentido) def __set_fullscreen(self, widget, event): if event.type.value_name == "GDK_2BUTTON_PRESS": win = self.get_toplevel() widget.set_sensitive(False) screen = win.get_screen() w, h = win.get_size() ww, hh = (screen.get_width(), screen.get_height()) if ww == w and hh == h: win.set_border_width(2) gobject.idle_add(self.__set_full, win, False) else: win.set_border_width(0) gobject.idle_add(self.__set_full, win, True) widget.set_sensitive(True) def __set_full(self, win, valor): if valor: win.fullscreen() else: win.unfullscreen() def __emit_show_controls(self, widget, valor): zona, ocultar = (valor, self.toolbar_info.ocultar_controles) self.emit("show-controls", (zona, ocultar)) def setup_init(self): map(ocultar, [self.toolbar_record, self.buffer_info]) #, self.efectos_aplicados]) self.toolbar_info.set_video(False) self.progress.set_sensitive(False) def set_ip(self, valor): self.toolbar_info.set_ip(valor)
class VideoPlayer(gtk.EventBox): __gsignals__ = { "full": (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []), "endfile": (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []), } def __init__(self): gtk.EventBox.__init__(self) self.modify_bg(gtk.STATE_NORMAL, COLORES["text"]) self.player = False self.video_path = "" vbox = gtk.VBox() self.visor = Visor() self.progress = ProgressPlayer() self.control = PlayerControls() vbox.pack_start(self.visor, True, True, 0) vbox.pack_start(self.progress, False, True, 0) vbox.pack_start(self.control, False, True, 0) self.add(vbox) self.show_all() self.control.connect("accion-controls", self.__control) self.progress.connect("seek", self.__seek) self.progress.connect("volumen", self.__volumen) def __endfile(self, widget=None, senial=None): self.emit("endfile") def __update_progress(self, objetoemisor, valor): self.progress.set_progress(float(valor)) def __state_changed(self, widget=None, valor=None): if "playing" in valor: self.control.set_playing() elif "paused" in valor or "None" in valor: self.control.set_paused() else: print "Estado del Reproductor desconocido:", valor def __seek(self, widget, valor): if self.player: self.player.set_position(valor) def __volumen(self, widget, valor): if self.player: self.player.set_volumen(valor) def __control(self, widget, accion): if accion == "stop": if self.player: self.player.stop() elif accion == "stop_and_unfull": if self.player: self.player.stop() self.emit("endfile") elif accion == "pausa-play": if self.player: self.player.pause_play() elif accion == "full": self.emit("full") def load(self, path): self.video_path = path volumen = 10 xid = self.visor.get_property('window').xid self.player = JAMediaReproductor(xid) self.player.connect("endfile", self.__endfile) self.player.connect("estado", self.__state_changed) self.player.connect("newposicion", self.__update_progress) self.player.load(path) self.player.play() self.player.set_volumen(volumen) #self.progress.volumen.set_value(volumen / 10) return False def stop(self): if self.player: # FIXME: No funciona en la XO con Fedora 11 #volumen = float("{:.1f}".format( # self.progress.volumen.get_value() * 10)) self.player.stop() self.player.disconnect_by_func(self.__endfile) self.player.disconnect_by_func(self.__state_changed) self.player.disconnect_by_func(self.__update_progress) del (self.player) self.player = False def pause(self): if self.player: self.player.pause()