def setup_init(self): """ Se crea la interfaz grafica, se setea y se empaqueta todo. """ from JAMediaObjects.JAMediaWidgets import WidgetsGstreamerAudioVisualizador from JAMediaObjects.JAMediaGstreamer.JAMediaAudio import JAMediaAudio from Widgets import ToolbarGrabarAudio # Widgets Base: - vbox - toolbars - panel basebox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.toolbar_salir = ToolbarSalir() self.toolbar = ToolbarGrabarAudio() hpanel = Gtk.HPaned() basebox.pack_start(self.toolbar_salir, False, True, 0) basebox.pack_start(self.toolbar, False, True, 0) basebox.pack_start(hpanel, True, True, 0) self.add(basebox) # Panel lado Izquierdo: vbox - pantalla - hbox_efectos_aplicados vbox_izq_panel = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.pantalla = Visor() eventbox = Gtk.EventBox() eventbox.modify_bg(0, get_color("NEGRO")) self.hbox_efectos_en_pipe = Gtk.Box( orientation=Gtk.Orientation.HORIZONTAL) self.hbox_efectos_en_pipe.set_size_request(-1, get_pixels(0.5)) scroll = Gtk.ScrolledWindow() scroll.set_policy( Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER) scroll.add_with_viewport(eventbox) eventbox.add(self.hbox_efectos_en_pipe) vbox_izq_panel.pack_start(self.pantalla, True, True, 0) vbox_izq_panel.pack_start(scroll, False, False, 0) hpanel.pack1(vbox_izq_panel, resize=True, shrink=True) # Panel lado Derecho: eventbox - vbox - scroll # - balance_widget - widget_efectos self.box_config = Gtk.EventBox() self.box_config.set_size_request(get_pixels(5.0), -1) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.widget_visualizadores_de_audio = WidgetsGstreamerAudioVisualizador() scroll = Gtk.ScrolledWindow() scroll.set_policy( Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER) scroll.add_with_viewport(self.widget_visualizadores_de_audio) self.balance_widget = ToolbarBalanceConfig() vbox.pack_start(self.balance_widget, False, True, 0) vbox.pack_start(scroll, False, True, 0) scroll = Gtk.ScrolledWindow() scroll.set_policy( Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) scroll.add_with_viewport(vbox) self.box_config.add(scroll) self.widget_efectos = WidgetsGstreamerEfectos() vbox.pack_start(self.widget_efectos, False, True, 0) hpanel.pack2(self.box_config, resize=False, shrink=False) self.show_all() self.realize() from gi.repository import GdkX11 xid = self.pantalla.get_property('window').get_xid() self.jamediawebcam = JAMediaAudio(xid) self.controles_dinamicos = [ self.toolbar_salir, self.box_config, ] map(self.ocultar, self.controles_dinamicos) self.jamediawebcam.connect('estado', self.set_estado) self.pantalla.connect("button_press_event", self.clicks_en_pantalla) self.toolbar.connect("rotar", self.set_rotacion) self.toolbar.connect("accion", self.set_accion) self.toolbar.connect('salir', self.confirmar_salir) self.balance_widget.connect('valor', self.set_balance) self.widget_efectos.connect("click_efecto", self.click_efecto) self.widget_efectos.connect('configurar_efecto', self.configurar_efecto) self.widget_visualizadores_de_audio.connect( "click_efecto", self.click_visualizador) #self.widget_visualizadores_de_audio.connect( # 'configurar_efecto', self.configurar_visualizador) self.toolbar_salir.connect('salir', self.emit_salir)
def setup_init(self): """ Se crea la interfaz grafica, se setea y se empaqueta todo. """ from JAMediaObjects.JAMediaWidgets import WidgetsGstreamerAudioVisualizador from JAMediaObjects.JAMediaGstreamer.JAMediaAudio import JAMediaAudio from Widgets import ToolbarGrabarAudio # Widgets Base: - vbox - toolbars - panel basebox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.toolbar_salir = ToolbarSalir() self.toolbar = ToolbarGrabarAudio() hpanel = Gtk.HPaned() basebox.pack_start(self.toolbar_salir, False, True, 0) basebox.pack_start(self.toolbar, False, True, 0) basebox.pack_start(hpanel, True, True, 0) self.add(basebox) # Panel lado Izquierdo: vbox - pantalla - hbox_efectos_aplicados vbox_izq_panel = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.pantalla = Visor() eventbox = Gtk.EventBox() eventbox.modify_bg(0, get_color("NEGRO")) self.hbox_efectos_en_pipe = Gtk.Box( orientation=Gtk.Orientation.HORIZONTAL) self.hbox_efectos_en_pipe.set_size_request(-1, get_pixels(0.5)) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER) scroll.add_with_viewport(eventbox) eventbox.add(self.hbox_efectos_en_pipe) vbox_izq_panel.pack_start(self.pantalla, True, True, 0) vbox_izq_panel.pack_start(scroll, False, False, 0) hpanel.pack1(vbox_izq_panel, resize=True, shrink=True) # Panel lado Derecho: eventbox - vbox - scroll # - balance_widget - widget_efectos self.box_config = Gtk.EventBox() self.box_config.set_size_request(get_pixels(5.0), -1) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.widget_visualizadores_de_audio = WidgetsGstreamerAudioVisualizador( ) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER) scroll.add_with_viewport(self.widget_visualizadores_de_audio) self.balance_widget = ToolbarBalanceConfig() vbox.pack_start(self.balance_widget, False, True, 0) vbox.pack_start(scroll, False, True, 0) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) scroll.add_with_viewport(vbox) self.box_config.add(scroll) self.widget_efectos = WidgetsGstreamerEfectos() vbox.pack_start(self.widget_efectos, False, True, 0) hpanel.pack2(self.box_config, resize=False, shrink=False) self.show_all() self.realize() from gi.repository import GdkX11 xid = self.pantalla.get_property('window').get_xid() self.jamediawebcam = JAMediaAudio(xid) self.controles_dinamicos = [ self.toolbar_salir, self.box_config, ] map(self.ocultar, self.controles_dinamicos) self.jamediawebcam.connect('estado', self.set_estado) self.pantalla.connect("button_press_event", self.clicks_en_pantalla) self.toolbar.connect("rotar", self.set_rotacion) self.toolbar.connect("accion", self.set_accion) self.toolbar.connect('salir', self.confirmar_salir) self.balance_widget.connect('valor', self.set_balance) self.widget_efectos.connect("click_efecto", self.click_efecto) self.widget_efectos.connect('configurar_efecto', self.configurar_efecto) self.widget_visualizadores_de_audio.connect("click_efecto", self.click_visualizador) #self.widget_visualizadores_de_audio.connect( # 'configurar_efecto', self.configurar_visualizador) self.toolbar_salir.connect('salir', self.emit_salir)
class JAMediaAudioWidget(JAMediaVideoWidget): """ Plug - Interfaz para Webcam con grabación de audio. """ def __init__(self): """ JAMediaAudioWidget: Gtk.Plug para embeber en otra aplicacion. """ JAMediaVideoWidget.__init__(self) self.toolbar_salir = None self.toolbar = None self.pantalla = None self.balance_widget = None self.controles_dinamicos = [] self.jamediawebcam = None self.box_config = None self.widget_efectos = None self.widget_visualizadores_de_audio = None self.hbox_efectos_en_pipe = None self.show_all() def setup_init(self): """ Se crea la interfaz grafica, se setea y se empaqueta todo. """ from JAMediaObjects.JAMediaWidgets import WidgetsGstreamerAudioVisualizador from JAMediaObjects.JAMediaGstreamer.JAMediaAudio import JAMediaAudio from Widgets import ToolbarGrabarAudio # Widgets Base: - vbox - toolbars - panel basebox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.toolbar_salir = ToolbarSalir() self.toolbar = ToolbarGrabarAudio() hpanel = Gtk.HPaned() basebox.pack_start(self.toolbar_salir, False, True, 0) basebox.pack_start(self.toolbar, False, True, 0) basebox.pack_start(hpanel, True, True, 0) self.add(basebox) # Panel lado Izquierdo: vbox - pantalla - hbox_efectos_aplicados vbox_izq_panel = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.pantalla = Visor() eventbox = Gtk.EventBox() eventbox.modify_bg(0, get_color("NEGRO")) self.hbox_efectos_en_pipe = Gtk.Box( orientation=Gtk.Orientation.HORIZONTAL) self.hbox_efectos_en_pipe.set_size_request(-1, get_pixels(0.5)) scroll = Gtk.ScrolledWindow() scroll.set_policy( Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER) scroll.add_with_viewport(eventbox) eventbox.add(self.hbox_efectos_en_pipe) vbox_izq_panel.pack_start(self.pantalla, True, True, 0) vbox_izq_panel.pack_start(scroll, False, False, 0) hpanel.pack1(vbox_izq_panel, resize=True, shrink=True) # Panel lado Derecho: eventbox - vbox - scroll # - balance_widget - widget_efectos self.box_config = Gtk.EventBox() self.box_config.set_size_request(get_pixels(5.0), -1) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.widget_visualizadores_de_audio = WidgetsGstreamerAudioVisualizador() scroll = Gtk.ScrolledWindow() scroll.set_policy( Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER) scroll.add_with_viewport(self.widget_visualizadores_de_audio) self.balance_widget = ToolbarBalanceConfig() vbox.pack_start(self.balance_widget, False, True, 0) vbox.pack_start(scroll, False, True, 0) scroll = Gtk.ScrolledWindow() scroll.set_policy( Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) scroll.add_with_viewport(vbox) self.box_config.add(scroll) self.widget_efectos = WidgetsGstreamerEfectos() vbox.pack_start(self.widget_efectos, False, True, 0) hpanel.pack2(self.box_config, resize=False, shrink=False) self.show_all() self.realize() from gi.repository import GdkX11 xid = self.pantalla.get_property('window').get_xid() self.jamediawebcam = JAMediaAudio(xid) self.controles_dinamicos = [ self.toolbar_salir, self.box_config, ] map(self.ocultar, self.controles_dinamicos) self.jamediawebcam.connect('estado', self.set_estado) self.pantalla.connect("button_press_event", self.clicks_en_pantalla) self.toolbar.connect("rotar", self.set_rotacion) self.toolbar.connect("accion", self.set_accion) self.toolbar.connect('salir', self.confirmar_salir) self.balance_widget.connect('valor', self.set_balance) self.widget_efectos.connect("click_efecto", self.click_efecto) self.widget_efectos.connect('configurar_efecto', self.configurar_efecto) self.widget_visualizadores_de_audio.connect( "click_efecto", self.click_visualizador) #self.widget_visualizadores_de_audio.connect( # 'configurar_efecto', self.configurar_visualizador) self.toolbar_salir.connect('salir', self.emit_salir) def set_accion(self, widget, senial): """ Cuando se hace click en grabar o en configurar. """ if senial == 'grabar': if self.jamediawebcam.estado != "GrabandoAudio": self.jamediawebcam.grabar() else: self.jamediawebcam.stop_grabar() elif senial == 'configurar': if self.box_config.get_visible(): self.box_config.hide() else: self.box_config.show() GLib.idle_add(self.update_balance_toolbars) elif senial == 'Reset': self.reset() def cargar_visualizadores(self, efectos): """ Agrega los widgets con efectos a la paleta de configuración. """ self.widget_visualizadores_de_audio.cargar_efectos(efectos) #def configurar_visualizador(self, widget, nombre_efecto, propiedad, valor): # """Configura un efecto en el pipe, si no está en eĺ, lo agrega.""" # self.jamediawebcam.configurar_visualizador(nombre_efecto, propiedad, valor) def click_visualizador(self, widget, nombre_efecto): if self.jamediawebcam.estado != "GrabandoAudio": self.jamediawebcam.set_visualizador(nombre_efecto) # FIXME: Agregar seleccionar visualizador actual def confirmar_salir(self, widget=None, senial=None): """ Recibe salir y lo pasa a la toolbar de confirmación. """ self.toolbar_salir.run("Menú Audio.")
class JAMediaAudioWidget(JAMediaVideoWidget): """ Plug - Interfaz para Webcam con grabación de audio. """ def __init__(self): """ JAMediaAudioWidget: Gtk.Plug para embeber en otra aplicacion. """ JAMediaVideoWidget.__init__(self) self.toolbar_salir = None self.toolbar = None self.pantalla = None self.balance_widget = None self.controles_dinamicos = [] self.jamediawebcam = None self.box_config = None self.widget_efectos = None self.widget_visualizadores_de_audio = None self.hbox_efectos_en_pipe = None self.show_all() def setup_init(self): """ Se crea la interfaz grafica, se setea y se empaqueta todo. """ from JAMediaObjects.JAMediaWidgets import WidgetsGstreamerAudioVisualizador from JAMediaObjects.JAMediaGstreamer.JAMediaAudio import JAMediaAudio from Widgets import ToolbarGrabarAudio # Widgets Base: - vbox - toolbars - panel basebox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.toolbar_salir = ToolbarSalir() self.toolbar = ToolbarGrabarAudio() hpanel = Gtk.HPaned() basebox.pack_start(self.toolbar_salir, False, True, 0) basebox.pack_start(self.toolbar, False, True, 0) basebox.pack_start(hpanel, True, True, 0) self.add(basebox) # Panel lado Izquierdo: vbox - pantalla - hbox_efectos_aplicados vbox_izq_panel = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.pantalla = Visor() eventbox = Gtk.EventBox() eventbox.modify_bg(0, get_color("NEGRO")) self.hbox_efectos_en_pipe = Gtk.Box( orientation=Gtk.Orientation.HORIZONTAL) self.hbox_efectos_en_pipe.set_size_request(-1, get_pixels(0.5)) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER) scroll.add_with_viewport(eventbox) eventbox.add(self.hbox_efectos_en_pipe) vbox_izq_panel.pack_start(self.pantalla, True, True, 0) vbox_izq_panel.pack_start(scroll, False, False, 0) hpanel.pack1(vbox_izq_panel, resize=True, shrink=True) # Panel lado Derecho: eventbox - vbox - scroll # - balance_widget - widget_efectos self.box_config = Gtk.EventBox() self.box_config.set_size_request(get_pixels(5.0), -1) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.widget_visualizadores_de_audio = WidgetsGstreamerAudioVisualizador( ) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER) scroll.add_with_viewport(self.widget_visualizadores_de_audio) self.balance_widget = ToolbarBalanceConfig() vbox.pack_start(self.balance_widget, False, True, 0) vbox.pack_start(scroll, False, True, 0) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) scroll.add_with_viewport(vbox) self.box_config.add(scroll) self.widget_efectos = WidgetsGstreamerEfectos() vbox.pack_start(self.widget_efectos, False, True, 0) hpanel.pack2(self.box_config, resize=False, shrink=False) self.show_all() self.realize() from gi.repository import GdkX11 xid = self.pantalla.get_property('window').get_xid() self.jamediawebcam = JAMediaAudio(xid) self.controles_dinamicos = [ self.toolbar_salir, self.box_config, ] map(self.ocultar, self.controles_dinamicos) self.jamediawebcam.connect('estado', self.set_estado) self.pantalla.connect("button_press_event", self.clicks_en_pantalla) self.toolbar.connect("rotar", self.set_rotacion) self.toolbar.connect("accion", self.set_accion) self.toolbar.connect('salir', self.confirmar_salir) self.balance_widget.connect('valor', self.set_balance) self.widget_efectos.connect("click_efecto", self.click_efecto) self.widget_efectos.connect('configurar_efecto', self.configurar_efecto) self.widget_visualizadores_de_audio.connect("click_efecto", self.click_visualizador) #self.widget_visualizadores_de_audio.connect( # 'configurar_efecto', self.configurar_visualizador) self.toolbar_salir.connect('salir', self.emit_salir) def set_accion(self, widget, senial): """ Cuando se hace click en grabar o en configurar. """ if senial == 'grabar': if self.jamediawebcam.estado != "GrabandoAudio": self.jamediawebcam.grabar() else: self.jamediawebcam.stop_grabar() elif senial == 'configurar': if self.box_config.get_visible(): self.box_config.hide() else: self.box_config.show() GLib.idle_add(self.update_balance_toolbars) elif senial == 'Reset': self.reset() def cargar_visualizadores(self, efectos): """ Agrega los widgets con efectos a la paleta de configuración. """ self.widget_visualizadores_de_audio.cargar_efectos(efectos) #def configurar_visualizador(self, widget, nombre_efecto, propiedad, valor): # """Configura un efecto en el pipe, si no está en eĺ, lo agrega.""" # self.jamediawebcam.configurar_visualizador(nombre_efecto, propiedad, valor) def click_visualizador(self, widget, nombre_efecto): if self.jamediawebcam.estado != "GrabandoAudio": self.jamediawebcam.set_visualizador(nombre_efecto) # FIXME: Agregar seleccionar visualizador actual def confirmar_salir(self, widget=None, senial=None): """ Recibe salir y lo pasa a la toolbar de confirmación. """ self.toolbar_salir.run("Menú Audio.")