def quit(self, button, userdata=None): self.dialog.hide() Gtk.main_quit() manager = StreamManager.get_stream_manager() manager.unsubscribe(self.stream_update) if manager.is_running(): manager.stop()
def __init__(self): handlers = { "onLiveActivate": self.stream, "onCancelActivate": self.quit, "audio-source-changed": self.audio_source_changed, "save-settings": self.save_settings, "delete-event": self.quit, "overlay-add": self.overlay_add, "overlay-delete": self.overlay_delete, "save-overlay-dialog": self.save_overlay_dialog, "hide-overlay-dialog": self.hide_overlay_dialog } builder = Gtk.Builder() builder.add_from_file("xml/stream_dialog.glade") self.dialog = builder.get_object("dialog1") self.username_entry = builder.get_object("username_entry") self.stream_key_entry = builder.get_object("stream_key_entry") self.remember_me = builder.get_object("remember_box") self.stream_button = builder.get_object("stream_button") # Settings self.options_notebook = builder.get_object("options_notebook") self.framerate_scale = builder.get_object("framerate_scale") self.fps_adjustment = builder.get_object("fps_adjustment") self.output_width = builder.get_object("output_width") self.output_height = builder.get_object("output_height") self.capture_x = builder.get_object("capture_x") self.capture_y = builder.get_object("capture_y") self.capture_width = builder.get_object("capture_width") self.capture_height = builder.get_object("capture_height") # Audio self.audio_source_box = builder.get_object("audio_source_box") self.audio_youtube_url = builder.get_object("audio_youtube_url") self.audio_custom_file = builder.get_object("audio_filechooser") # Overlay self.overlay_dialog = builder.get_object("overlay_dialog") self.overlay_dialog_image = builder.get_object("overlay_dialog_image") self.overlay_dialog_x = builder.get_object("overlay_dialog_x") self.overlay_dialog_y = builder.get_object("overlay_dialog_y") self.overlay_dialog_anchor = builder.get_object("overlay_dialog_anchor") self.overlay_store = builder.get_object("overlay_store") self.overlay_selection = builder.get_object("overlay_selection") self.load_settings() # Show stream in WebKit frame frame = builder.get_object('web_box') self.webview = WebKit2.WebView() self.webview.set_hexpand(True) self.webview.set_vexpand(True) self.webview.load_html(ALPHA_TEXT, "") frame.add(self.webview) builder.connect_signals(handlers) # Monitor for vlc and jtvlc process changes manager = StreamManager.get_stream_manager() manager.subscribe(self.stream_update)
def start_stream(self): StreamManager.get_stream_manager().start() if self.webview.get_uri() != ("http://www.twitch.tv/%s" % self.username_entry.get_text()): self.webview.load_uri("http://www.twitch.tv/%s" % self.username_entry.get_text())
def stop_stream(self): StreamManager.get_stream_manager().stop()
def stream(self, button, userdata=None): if StreamManager.get_stream_manager().is_running() is False: self.start_stream() else: self.stop_stream()