def _create_spice_session(self): self._spice_session = SpiceClientGLib.Session() SpiceClientGLib.set_session_option(self._spice_session) gtk_session = SpiceClientGtk.GtkSession.get(self._spice_session) gtk_session.set_property("auto-clipboard", True) GObject.GObject.connect(self._spice_session, "channel-new", self._channel_new_cb) # Distros might have usb redirection compiled out, like OpenBSD # https://bugzilla.redhat.com/show_bug.cgi?id=1348479 try: self._usbdev_manager = SpiceClientGLib.UsbDeviceManager.get( self._spice_session) self._usbdev_manager.connect("auto-connect-failed", self._usbdev_redirect_error) self._usbdev_manager.connect("device-error", self._usbdev_redirect_error) autoredir = self.config.get_auto_redirection() if autoredir: gtk_session.set_property("auto-usbredir", True) except: self._usbdev_manager = None logging.debug("Error initializing spice usb device manager", exc_info=True)
def _create_spice_session(self, conf={}): assert not self._spice_session self._spice_session = SpiceClientGLib.Session(read_only=False, **conf) SpiceClientGLib.set_session_option(self._spice_session) GObject.GObject.connect(self._spice_session, "channel-new", self._channel_new_cb)
def open_fd(self, fd, password=None): self.spice_session = SpiceClientGLib.Session() if password: self.spice_session.set_property("password", password) GObject.GObject.connect(self.spice_session, "channel-new", self._channel_new_cb) self.spice_session.open_fd(fd)
def open_host(self, ginfo, password=None): host, port = ginfo.get_conn_host() uri = "spice://" uri += str(host) + "?port=" + str(port) logging.debug("spice uri: %s", uri) self.spice_session = SpiceClientGLib.Session() self.spice_session.set_property("uri", uri) if password: self.spice_session.set_property("password", password) GObject.GObject.connect(self.spice_session, "channel-new", self._channel_new_cb) self.spice_session.connect()
def _create_spice_session(self): self._spice_session = SpiceClientGLib.Session() SpiceClientGLib.set_session_option(self._spice_session) gtk_session = SpiceClientGtk.GtkSession.get(self._spice_session) gtk_session.set_property("auto-clipboard", True) GObject.GObject.connect(self._spice_session, "channel-new", self._channel_new_cb) self._usbdev_manager = SpiceClientGLib.UsbDeviceManager.get( self._spice_session) self._usbdev_manager.connect("auto-connect-failed", self._usbdev_redirect_error) self._usbdev_manager.connect("device-error", self._usbdev_redirect_error) autoredir = self.config.get_auto_redirection() if autoredir: gtk_session.set_property("auto-usbredir", True)
def __init__(self, host, port, listen_port, overlay): self._mainloop = GLib.MainLoop() self._qxlinstance = None self._main_channel = None self._display_channel = None self._cursor_channel = None self._inputs_channel = None self._command_queue = Queue() self._cursor_set_command = None self._tablet_buttons_state = 0 self._show_overlay = overlay # Client self._spice_session = SpiceClientGLib.Session(host=host, port=port) GObject.GObject.connect(self._spice_session, "channel-new", self._channel_new_cb) self._spice_session.connect() # Server self._spiceserver = SpiceServerGLib.Server( noauth=True, port=listen_port, image_compression=SpiceServerGLib.ImageCompression.OFF, jpeg_compression=SpiceServerGLib.WANCompression.NEVER, zlib_glz_compression=SpiceServerGLib.WANCompression.NEVER) self._spiceserver.init() self._keyboardinstance = SpiceServerGLib.KeyboardInstance() self._keyboardinstance.connect("push-key", self._keyboard_push_key_cb) self._spiceserver.add_interface(self._keyboardinstance) self._tabletinstance = SpiceServerGLib.TabletInstance() self._tabletinstance.connect("position", self._tablet_position_cb) self._tabletinstance.connect("wheel", self._tablet_wheel_cb) self._tabletinstance.connect("buttons", self._tablet_buttons_cb) self._spiceserver.add_interface(self._tabletinstance)