[Spice-devel] [PATCH spice-protocol V2] vd_agent.h: drag-and-drop support

Dunrong Huang riegamaths at gmail.com
Fri Nov 23 02:47:43 PST 2012


At present, Vmware and Virtualbox has supported file drag&drop feature,
I think it's a good feature for users, so we want qemu/spice to
supports it.

This patch first adds communication protocol between client and guest,
we must make the agent protocol stable before coding, this is what we
want this patch to do.

This feature has been discussed on spice mailing list.

The more details are available at following pages:
http://lists.freedesktop.org/archives/spice-devel/2012-November/011400.html
and
http://lists.freedesktop.org/archives/spice-devel/2012-November/011485.html

Signed-off-by: Dunrong Huang <riegamaths at gmail.com>
Cc: Hans de Goede <hdegoede at redhat.com>
Cc: Marc-André Lureau <marcandre.lureau at redhat.com>
Cc: Alon Levy <alevy at redhat.com>
Cc: Uri Lublin <uril at redhat.com>
---
 spice/vd_agent.h | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/spice/vd_agent.h b/spice/vd_agent.h
index 2b9884e..f6cc49e 100644
--- a/spice/vd_agent.h
+++ b/spice/vd_agent.h
@@ -69,9 +69,44 @@ enum {
     VD_AGENT_CLIPBOARD_GRAB,
     VD_AGENT_CLIPBOARD_REQUEST,
     VD_AGENT_CLIPBOARD_RELEASE,
+    VD_AGENT_FILE_XFER_START,
+    VD_AGENT_FILE_XFER_STATUS,
+    VD_AGENT_FILE_XFER_DATA,
     VD_AGENT_END_MESSAGE,
 };
 
+enum {
+    VD_AGENT_FILE_XFER_RESULT_SUCCESS,
+    VD_AGENT_FILE_XFER_RESULT_DISK_FULL,
+    VD_AGENT_FILE_XFER_RESULT_CANCELLED,
+    VD_AGENT_FILE_XFER_RESULT_ERROR,
+};
+
+typedef struct SPICE_ATTR_PACKED VDAgentFileXferStatusMessage {
+   uint32_t id;
+   uint32_t result;
+} VDAgentFileXferStatusMessage;
+
+enum {
+    VD_AGENT_FILE_XFER_FORMAT_RAW,
+    VD_AGENT_FILE_XFER_RESULT_GZIP,
+};
+
+typedef struct SPICE_ATTR_PACKED VDAgentFileXferStartMessage {
+   uint32_t id;
+   uint32_t is_dir;
+   uint32_t compressed_format;
+   uint32_t file_mode;
+   uint64_t file_size;
+   uint8_t file_name[0];
+} VDAgentFileXferStartMessage;
+
+typedef struct SPICE_ATTR_PACKED VDAgentFileXferDataMessage {
+   uint32_t id;
+   uint64_t size;
+   uint8_t data[0];
+} VDAgentFileXferDataMessage;
+
 typedef struct SPICE_ATTR_PACKED VDAgentMonConfig {
     uint32_t height;
     uint32_t width;
-- 
1.8.0



More information about the Spice-devel mailing list