def switch_reproductor(self, widget, nombre): """ Recibe la señal "reproductor" desde toolbar_config y cambia el reproductor que se utiliza, entre mplayer y jamediareproductor (Gst 1.0). """ self.get_toplevel().set_sensitive(False) reproductor = self.player # HACK: JAMediaReproductor no funciona con Tv. #if reproductor == self.mplayerreproductor and \ # ("TV" in self.toolbar_list.label.get_text() or \ # "Tv" in self.toolbar_list.label.get_text()): # self.toolbar_config.mplayer_boton.set_active(True) # self.toolbar_config.jamedia_boton.set_active(False) # return if nombre == "MplayerReproductor": if get_programa('mplayer'): reproductor = self.mplayerreproductor self.toolbar_info.set_reproductor("MplayerReproductor") self.toolbar_config.mplayer_boton.set_active(True) else: reproductor = self.jamediareproductor self.toolbar_info.set_reproductor("JAMediaReproductor") self.toolbar_config.jamedia_boton.set_active(True) elif nombre == "JAMediaReproductor": reproductor = self.jamediareproductor self.toolbar_info.set_reproductor("JAMediaReproductor") self.toolbar_config.jamedia_boton.set_active(True) if self.player != reproductor: try: self.player.stop() except: pass self.player = reproductor print "Reproduciendo con:", self.player.name try: model, iter = self.lista_de_reproduccion.get_selection( ).get_selected() valor = model.get_value(iter, 2) if self.player: self.player.load(valor) except: pass self.get_toplevel().set_sensitive(True)
def setup_init(self): """ Se crea la interfaz grafica, se setea y se empaqueta todo. """ self.get_toplevel().set_sensitive(False) #from Globales import get_color from Widgets import Visor from Widgets import BarraProgreso from Widgets import ControlVolumen from PlayerList import Lista from PlayerControls import PlayerControl from GstreamerWidgets.Widgets import WidgetsGstreamerEfectos from Toolbars import ToolbarSalir from Toolbars import Toolbar from Toolbars import ToolbarAccion from Toolbars import ToolbarConfig from Toolbars import ToolbarGrabar from Toolbars import ToolbarInfo from Toolbars import ToolbarAddStream self.pantalla = Visor() self.barradeprogreso = BarraProgreso() self.volumen = ControlVolumen() self.lista_de_reproduccion = Lista() self.controlesrepro = PlayerControl() self.toolbar = Toolbar() self.toolbar_config = ToolbarConfig() self.widget_efectos = WidgetsGstreamerEfectos() self.toolbar_accion = ToolbarAccion() self.toolbar_grabar = ToolbarGrabar() self.toolbar_info = ToolbarInfo() self.toolbaraddstream = ToolbarAddStream() self.toolbar_salir = ToolbarSalir() basebox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) hpanel = Gtk.Paned(orientation=Gtk.Orientation.HORIZONTAL) hpanel.modify_bg(0, get_colors("window")) eventbox = Gtk.EventBox() # FIXME: Para poder pintar el fondo eventbox.modify_bg(0, get_colors("barradeprogreso")) eventbox.add(self.toolbar) basebox.pack_start(eventbox, False, False, 3) basebox.pack_start(self.toolbar_salir, False, False, 0) basebox.pack_start(self.toolbar_accion, False, False, 0) basebox.pack_start(self.toolbaraddstream, False, False, 0) basebox.pack_start(hpanel, True, True, 0) # Area Izquierda del Panel # Efectos que se están aplicando. eventbox = Gtk.EventBox() # FIXME: Para poder pintar el fondo eventbox.modify_bg(0, get_colors("drawingplayer")) self.hbox_efectos_en_pipe = Gtk.Box( orientation=Gtk.Orientation.HORIZONTAL) self.hbox_efectos_en_pipe.set_size_request(-1, 24) eventbox.add(self.hbox_efectos_en_pipe) scroll = Gtk.ScrolledWindow() scroll.set_policy( Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER) scroll.add_with_viewport(eventbox) # Barra de Progreso + Volúmen ev_box = Gtk.EventBox() # FIXME: Para poder pintar el fondo ev_box.modify_bg(0, get_colors("barradeprogreso")) hbox_barra_progreso = Gtk.Box( orientation=Gtk.Orientation.HORIZONTAL) hbox_barra_progreso.pack_start( self.barradeprogreso, True, True, 0) hbox_barra_progreso.pack_start( self.volumen, False, False, 0) ev_box.add(hbox_barra_progreso) # Todo vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) vbox.pack_start(self.toolbar_grabar, False, False, 0) vbox.pack_start(self.pantalla, True, True, 0) vbox.pack_start(scroll, False, False, 0) eventbox = Gtk.EventBox() # FIXME: Para poder pintar el fondo eventbox.modify_bg(0, get_colors("barradeprogreso")) eventbox.add(self.toolbar_info) vbox.pack_start(eventbox, False, False, 3) vbox.pack_start(ev_box, False, True, 0) hpanel.pack1(vbox, resize=True, shrink=True) # Area Derecha del Panel self.derecha_vbox = Gtk.Box( orientation=Gtk.Orientation.VERTICAL) # Configuración de balanace y efectos self.vbox_config = Gtk.Box( orientation=Gtk.Orientation.VERTICAL) self.scroll_config = Gtk.ScrolledWindow() self.scroll_config.set_policy( Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) self.scroll_config.add_with_viewport(self.vbox_config) self.scroll_config.get_child().modify_bg(0, get_colors("window")) self.vbox_config.pack_start( self.toolbar_config, False, False, 0) #self.vbox_config.pack_start(self.widget_efectos, False, False, 0) # Lista de Reproducción # FIXME: Para poder pintar el fondo self.evnt_box_lista_reproduccion = Gtk.EventBox() self.evnt_box_lista_reproduccion.modify_bg( 0, get_colors("barradeprogreso")) self.vbox_lista_reproduccion = Gtk.Box( orientation=Gtk.Orientation.VERTICAL) self.scroll_list = Gtk.ScrolledWindow() self.scroll_list.set_policy( Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.scroll_list.add(self.lista_de_reproduccion) # Lista + Controles de Reproducción self.__pack_vbox_lista_reproduccion() self.evnt_box_lista_reproduccion.add( self.vbox_lista_reproduccion) # Configuración + Lista de Reproducción. self.derecha_vbox.pack_start( self.scroll_config, True, True, 0) self.derecha_vbox.pack_start( self.evnt_box_lista_reproduccion, True, True, 0) hpanel.pack2(self.derecha_vbox, resize=False, shrink=True) self.controles_dinamicos = [ hbox_barra_progreso, self.derecha_vbox, self.toolbar, self.toolbar_info, self.hbox_efectos_en_pipe.get_parent().get_parent( ).get_parent()] basebox.show_all() map(self.__ocultar, [self.toolbar_salir, self.scroll_config, self.toolbar_accion, self.toolbar_grabar, self.toolbaraddstream, self.toolbar_info.descarga]) self.add(basebox) from gi.repository import GdkX11 xid = self.pantalla.get_property('window').get_xid() # HACK: La aplicación nunca debe explotar :P if get_programa("mplayer"): self.mplayerreproductor = MplayerReproductor(xid) else: self.mplayerreproductor = MplayerReproductor(self.pantalla) # HACK: La aplicación nunca debe explotar :P if verificar_Gstreamer(): self.jamediareproductor = JAMediaReproductor(xid) else: self.jamediareproductor = JAMediaReproductor(self.pantalla) self.switch_reproductor( None, "JAMediaReproductor") # default Gst. self.mplayerreproductor.connect( "endfile", self.__endfile) self.mplayerreproductor.connect( "estado", self.__cambioestadoreproductor) self.mplayerreproductor.connect( "newposicion", self.__update_progress) self.mplayerreproductor.connect( "volumen", self.__get_volumen) self.mplayerreproductor.connect( "video", self.__set_video) self.jamediareproductor.connect( "endfile", self.__endfile) self.jamediareproductor.connect( "estado", self.__cambioestadoreproductor) self.jamediareproductor.connect( "newposicion", self.__update_progress) self.jamediareproductor.connect( "volumen", self.__get_volumen) self.jamediareproductor.connect( "video", self.__set_video) self.lista_de_reproduccion.connect( "nueva-seleccion", self.__cargar_reproducir) self.lista_de_reproduccion.connect( "button-press-event", self.__click_derecho_en_lista) self.controlesrepro.connect( "activar", self.__activar) self.barradeprogreso.connect( "user-set-value", self.__user_set_value) self.pantalla.connect( "ocultar_controles", self.__ocultar_controles) self.pantalla.connect( "button_press_event", self.__clicks_en_pantalla) self.toolbar.connect('salir', self.confirmar_salir) #self.toolbar.connect('capturar', self.fotografiar) self.toolbar.connect('config', self.__mostrar_config) self.toolbar_salir.connect( 'salir', self.__emit_salir) self.toolbar_config.connect( 'reproductor', self.switch_reproductor) self.toolbar_config.connect( 'valor', self.__set_balance) self.toolbar_info.connect( 'rotar', self.__set_rotacion) self.toolbar_info.connect( 'actualizar_streamings', self.__actualizar_streamings) self.toolbar_accion.connect( "Grabar", self.__grabar_streaming) self.toolbar_accion.connect( "accion-stream", self.__accion_stream) self.toolbar_grabar.connect( "stop", self.__detener_grabacion) self.volumen.connect( "volumen", self.__set_volumen) self.toolbaraddstream.connect( "add-stream", self.__ejecutar_add_stream) self.widget_efectos.connect( "click_efecto", self.__click_efecto) self.widget_efectos.connect( 'configurar_efecto', self.__configurar_efecto) # Controlador del mouse. icono = os.path.join(BASE_PATH, "Iconos", "jamedia_cursor.svg") pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(icono, -1, 24) self.jamedia_cursor = Gdk.Cursor.new_from_pixbuf( Gdk.Display.get_default(), pixbuf, 0, 0) self.cursor_root = self.get_parent_window().get_cursor() self.get_parent_window().set_cursor(self.jamedia_cursor) from Widgets import MouseSpeedDetector self.mouse_listener = MouseSpeedDetector(self) self.mouse_listener.connect( "estado", self.__set_mouse) self.mouse_listener.new_handler(True) self.get_parent().connect( "hide", self.__hide_show_parent) self.get_parent().connect( "show", self.__hide_show_parent) self.hbox_efectos_en_pipe.get_parent().get_parent( ).get_parent().hide() self.get_toplevel().set_sensitive(True)
import os from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GdkPixbuf from gi.repository import GObject from gi.repository import GLib from Globales import get_programa from Globales import verificar_Gstreamer from Globales import get_colors BASE_PATH = os.path.dirname(__file__) # HACK: La aplicación nunca debe explotar :P if get_programa("mplayer"): from JAMediaReproductor.MplayerReproductor import MplayerReproductor from JAMediaReproductor.MplayerReproductor import MplayerGrabador else: from JAMediaReproductor.PlayerNull import MplayerReproductor from JAMediaReproductor.PlayerNull import MplayerGrabador # HACK: La aplicación nunca debe explotar :P if verificar_Gstreamer(): from JAMediaReproductor.JAMediaReproductor import JAMediaReproductor from JAMediaReproductor.JAMediaReproductor import JAMediaGrabador else: from JAMediaReproductor.PlayerNull import JAMediaReproductor from JAMediaReproductor.PlayerNull import JAMediaGrabador
def setup_init(self): """ Se crea la interfaz grafica, se setea y se empaqueta todo. """ self.get_toplevel().set_sensitive(False) #from Globales import get_color from Widgets import Visor from Widgets import BarraProgreso from Widgets import ControlVolumen from PlayerList import Lista from PlayerControls import PlayerControl from GstreamerWidgets.Widgets import WidgetsGstreamerEfectos from Toolbars import ToolbarSalir from Toolbars import Toolbar from Toolbars import ToolbarAccion from Toolbars import ToolbarConfig from Toolbars import ToolbarGrabar from Toolbars import ToolbarInfo from Toolbars import ToolbarAddStream self.pantalla = Visor() self.barradeprogreso = BarraProgreso() self.volumen = ControlVolumen() self.lista_de_reproduccion = Lista() self.controlesrepro = PlayerControl() self.toolbar = Toolbar() self.toolbar_config = ToolbarConfig() self.widget_efectos = WidgetsGstreamerEfectos() self.toolbar_accion = ToolbarAccion() self.toolbar_grabar = ToolbarGrabar() self.toolbar_info = ToolbarInfo() self.toolbaraddstream = ToolbarAddStream() self.toolbar_salir = ToolbarSalir() basebox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) hpanel = Gtk.Paned(orientation=Gtk.Orientation.HORIZONTAL) hpanel.modify_bg(0, get_colors("window")) eventbox = Gtk.EventBox() # FIXME: Para poder pintar el fondo eventbox.modify_bg(0, get_colors("barradeprogreso")) eventbox.add(self.toolbar) basebox.pack_start(eventbox, False, False, 3) basebox.pack_start(self.toolbar_salir, False, False, 0) basebox.pack_start(self.toolbar_accion, False, False, 0) basebox.pack_start(self.toolbaraddstream, False, False, 0) basebox.pack_start(hpanel, True, True, 0) # Area Izquierda del Panel # Efectos que se están aplicando. eventbox = Gtk.EventBox() # FIXME: Para poder pintar el fondo eventbox.modify_bg(0, get_colors("drawingplayer")) self.hbox_efectos_en_pipe = Gtk.Box( orientation=Gtk.Orientation.HORIZONTAL) self.hbox_efectos_en_pipe.set_size_request(-1, 24) eventbox.add(self.hbox_efectos_en_pipe) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER) scroll.add_with_viewport(eventbox) # Barra de Progreso + Volúmen ev_box = Gtk.EventBox() # FIXME: Para poder pintar el fondo ev_box.modify_bg(0, get_colors("barradeprogreso")) hbox_barra_progreso = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) hbox_barra_progreso.pack_start(self.barradeprogreso, True, True, 0) hbox_barra_progreso.pack_start(self.volumen, False, False, 0) ev_box.add(hbox_barra_progreso) # Todo vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) vbox.pack_start(self.toolbar_grabar, False, False, 0) vbox.pack_start(self.pantalla, True, True, 0) vbox.pack_start(scroll, False, False, 0) eventbox = Gtk.EventBox() # FIXME: Para poder pintar el fondo eventbox.modify_bg(0, get_colors("barradeprogreso")) eventbox.add(self.toolbar_info) vbox.pack_start(eventbox, False, False, 3) vbox.pack_start(ev_box, False, True, 0) hpanel.pack1(vbox, resize=True, shrink=True) # Area Derecha del Panel self.derecha_vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) # Configuración de balanace y efectos self.vbox_config = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.scroll_config = Gtk.ScrolledWindow() self.scroll_config.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) self.scroll_config.add_with_viewport(self.vbox_config) self.scroll_config.get_child().modify_bg(0, get_colors("window")) self.vbox_config.pack_start(self.toolbar_config, False, False, 0) #self.vbox_config.pack_start(self.widget_efectos, False, False, 0) # Lista de Reproducción # FIXME: Para poder pintar el fondo self.evnt_box_lista_reproduccion = Gtk.EventBox() self.evnt_box_lista_reproduccion.modify_bg( 0, get_colors("barradeprogreso")) self.vbox_lista_reproduccion = Gtk.Box( orientation=Gtk.Orientation.VERTICAL) self.scroll_list = Gtk.ScrolledWindow() self.scroll_list.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.scroll_list.add(self.lista_de_reproduccion) # Lista + Controles de Reproducción self.__pack_vbox_lista_reproduccion() self.evnt_box_lista_reproduccion.add(self.vbox_lista_reproduccion) # Configuración + Lista de Reproducción. self.derecha_vbox.pack_start(self.scroll_config, True, True, 0) self.derecha_vbox.pack_start(self.evnt_box_lista_reproduccion, True, True, 0) hpanel.pack2(self.derecha_vbox, resize=False, shrink=True) self.controles_dinamicos = [ hbox_barra_progreso, self.derecha_vbox, self.toolbar, self.toolbar_info, self.hbox_efectos_en_pipe.get_parent().get_parent().get_parent() ] basebox.show_all() map(self.__ocultar, [ self.toolbar_salir, self.scroll_config, self.toolbar_accion, self.toolbar_grabar, self.toolbaraddstream, self.toolbar_info.descarga ]) self.add(basebox) from gi.repository import GdkX11 xid = self.pantalla.get_property('window').get_xid() # HACK: La aplicación nunca debe explotar :P if get_programa("mplayer"): self.mplayerreproductor = MplayerReproductor(xid) else: self.mplayerreproductor = MplayerReproductor(self.pantalla) # HACK: La aplicación nunca debe explotar :P if verificar_Gstreamer(): self.jamediareproductor = JAMediaReproductor(xid) else: self.jamediareproductor = JAMediaReproductor(self.pantalla) self.switch_reproductor(None, "JAMediaReproductor") # default Gst. self.mplayerreproductor.connect("endfile", self.__endfile) self.mplayerreproductor.connect("estado", self.__cambioestadoreproductor) self.mplayerreproductor.connect("newposicion", self.__update_progress) self.mplayerreproductor.connect("volumen", self.__get_volumen) self.mplayerreproductor.connect("video", self.__set_video) self.jamediareproductor.connect("endfile", self.__endfile) self.jamediareproductor.connect("estado", self.__cambioestadoreproductor) self.jamediareproductor.connect("newposicion", self.__update_progress) self.jamediareproductor.connect("volumen", self.__get_volumen) self.jamediareproductor.connect("video", self.__set_video) self.lista_de_reproduccion.connect("nueva-seleccion", self.__cargar_reproducir) self.lista_de_reproduccion.connect("button-press-event", self.__click_derecho_en_lista) self.controlesrepro.connect("activar", self.__activar) self.barradeprogreso.connect("user-set-value", self.__user_set_value) self.pantalla.connect("ocultar_controles", self.__ocultar_controles) self.pantalla.connect("button_press_event", self.__clicks_en_pantalla) self.toolbar.connect('salir', self.confirmar_salir) #self.toolbar.connect('capturar', self.fotografiar) self.toolbar.connect('config', self.__mostrar_config) self.toolbar_salir.connect('salir', self.__emit_salir) self.toolbar_config.connect('reproductor', self.switch_reproductor) self.toolbar_config.connect('valor', self.__set_balance) self.toolbar_info.connect('rotar', self.__set_rotacion) self.toolbar_info.connect('actualizar_streamings', self.__actualizar_streamings) self.toolbar_accion.connect("Grabar", self.__grabar_streaming) self.toolbar_accion.connect("accion-stream", self.__accion_stream) self.toolbar_grabar.connect("stop", self.__detener_grabacion) self.volumen.connect("volumen", self.__set_volumen) self.toolbaraddstream.connect("add-stream", self.__ejecutar_add_stream) self.widget_efectos.connect("click_efecto", self.__click_efecto) self.widget_efectos.connect('configurar_efecto', self.__configurar_efecto) # Controlador del mouse. icono = os.path.join(BASE_PATH, "Iconos", "jamedia_cursor.svg") pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(icono, -1, 24) self.jamedia_cursor = Gdk.Cursor.new_from_pixbuf( Gdk.Display.get_default(), pixbuf, 0, 0) self.cursor_root = self.get_parent_window().get_cursor() self.get_parent_window().set_cursor(self.jamedia_cursor) from Widgets import MouseSpeedDetector self.mouse_listener = MouseSpeedDetector(self) self.mouse_listener.connect("estado", self.__set_mouse) self.mouse_listener.new_handler(True) self.get_parent().connect("hide", self.__hide_show_parent) self.get_parent().connect("show", self.__hide_show_parent) self.hbox_efectos_en_pipe.get_parent().get_parent().get_parent().hide() self.get_toplevel().set_sensitive(True)