Commit Graph

15 Commits

Author SHA1 Message Date
Marc-André Lureau
81e16ad934 gtk-doc: fix api-index warnings
Fix gtk-doc warnings such as:
html/SpiceChannel.html:538: warning: no link for: "api-index-0.20" -> (0.20).

Unfortunately, the generated file is still missing.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2019-02-13 17:31:09 +00:00
Marc-André Lureau
f61534ddc0 glib: add SpiceQmpPort helper
Add a few helper functions to deal with a QMP port channel, in order
to ease json handling, and wrapping a few commands.

(by convention, the port should have the name
"org.qemu.monitor.qmp.0", but it's not strictly required)

This helper is put into use in the virt-viewer "Add QEMU-like UI: VT
console & basic VM status" series.

Note: this adds a strong dependency on json-glib for
spice-client-glib, a widely available and fairly small
library.

QMP specification is:
https://git.qemu.org/?p=qemu.git;a=blob;f=docs/interop/qmp-spec.txt

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
2018-09-24 10:51:36 +04:00
Jonathon Jongsma
2c26ee3c37 New file transfer API
There were several shortcomings to the existing file transfer API,
particularly in terms of monitoring ongoing file transfers. The major
issue is that spice_main_file_copy_async() allows you to pass an array
of files, but the progress callback does not provide a way to
identify which file the callback is associated with. This makes it
nearly impossible for an application to monitor file transfers.

In addition, the SpiceDisplay widget automatically handles drag-and-drop
actions on the widget, and initiates file transfers without allowing the
application to specify a progress callback. So there's no way for an app
to monitor file transfers that are initiated via drag and drop.

http://lists.freedesktop.org/archives/spice-devel/2015-September/021931.html
has a more detailed explanation of the issues.

This change doesn't break the existing API, but adds some new API that
will allow an application to monitor file transfer progress, even for
transfers that are initiated within spice-gtk itself.

- A new public SpiceFileTransferTask object is added.
- The SpiceMainChannel object gains a "new-file-transfer" signal that is
  emitted whenever a new file transfer is initiated. The
  SpiceFileTransferTask object is passed to the signal handler.
- The application can retain this object and monitor its 'progress'
  property to be notified when the progress of the file transfer
  changes. The SpiceFileTransferTask::finished signal indicates when the
  given file transfer has completed. The application can also cancel the
  file transfer by calling the _cancel() method.

The 'spicy' test application has been updated to use this new API and
display a simple dialog showing the progress of individual files.
2015-10-09 15:42:56 -05:00
Pavel Grunt
0795754fdc docs: Add Version Information section 2015-09-25 13:39:12 +02:00
Marc-André Lureau
382ecfa16f Add webdav channel
See spice-common for protocol details.  phodav, a webdav server library,
is imported thanks to a submodule, until this project has a stable API
and releases.

The webdav channel is reponsible for handling port events and
multiplexing the request streams. Extra care has been made to avoid
blocking and to enable some fairness between concurrent streams, however
this has been particularly tricky and is likely to have some issues
left.

The webdav server is run in a seperate thread, using libsoup. The client
communication is done via a local tcp socket, but protected to only
accept local connection and with a pretty strong password.

The home directory is exported for the remote to browse, which seems to
be a sensible default atm.
2014-03-19 15:24:23 +01:00
Marc-André Lureau
7c909790ca Make SpiceURI a public API
Generalize a little bit SpiceProxy to allow easy URI manipulation by
clients.
2014-02-21 12:23:01 +01:00
Marc-André Lureau
a95e445606 Add a port channel
A Spice port channel carry arbitrary data between the Spice client and
the Spice server. It may be used to provide additional services on top
of a Spice connection. For example, a channel can be associated with
the qemu monitor for the client to interact with it, just like any
qemu chardev. Or it may be used with various protocols, such as the
Spice Controller.

A port kind is identified simply by a fqdn, such as org.qemu.monitor,
org.spice.spicy.test or org.ovirt.controller...
2012-12-05 11:26:35 +01:00
Hans de Goede
bf0350423c Add a USB device selection widget
This patch adds a SpiceUsbDeviceWidget which apps can use to easily
add an UI to select USB devices to redirect (or unredirect).

See spicy for an example usage.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2012-01-31 14:31:38 +01:00
Hans de Goede
f6766163d2 Add a SpiceGtkSession Class
This initial commit of the SpiceGtkSession Class only adds the empty
class and the 1:1 linkage to SpiceSession through 2 new private methods
added to SpiceSession: spice_session_{get|set}_gtk_session.

The following commits will move things which are currently per SpiceDisplay,
but which really should be global, such as the clipboard, over to
SpiceGtkSession.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2011-10-06 11:36:39 +02:00
Marc-André Lureau
4479fc4eb5 doc: update to include USB redirection 2011-08-31 14:26:17 +02:00
Marc-André Lureau
fd0c76a889 gtk/doc: improve the generated gtk-doc a bit 2011-07-13 19:00:46 +02:00
Christophe Fergeau
f3c48f9985 smartcard: add smartcard API doc 2011-07-13 18:16:46 +02:00
Marc-André Lureau
e8e8457495 gtk: continue API documentation 2010-12-09 10:58:47 +01:00
Marc-André Lureau
2cd0637c78 gtk: s/vnc/spice/ grab_sequence, break API 2010-12-06 19:33:02 +01:00
Marc-André Lureau
165000de77 gtk: first stab at gtk-doc documentation 2010-12-05 22:19:16 +01:00