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

Marc-André Lureau mlureau at redhat.com
Wed Nov 28 04:24:59 PST 2012


Hi

----- Mensaje original -----
> 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

Something that we haven't discussed yet afaik is support for drag&drop from guest to client. The clipboard agent messages work both ways. It looks to me like the Xfer messages would work in both directions.

>
> diff --git a/spice/vd_agent.h b/spice/vd_agent.h
> index 2b9884e..b05da3e 100644
> --- a/spice/vd_agent.h
> +++ b/spice/vd_agent.h
> @@ -69,9 +69,34 @@ 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_STATUS_CAN_SEND_DATA,
> +    VD_AGENT_FILE_XFER_STATUS_CANCELLED,
> +    VD_AGENT_FILE_XFER_STATUS_ERROR,
> +};
> +
> +typedef struct SPICE_ATTR_PACKED VDAgentFileXferStatusMessage {
> +   uint32_t id;
> +   uint32_t result;
> +} VDAgentFileXferStatusMessage;
> +
> +typedef struct SPICE_ATTR_PACKED VDAgentFileXferStartMessage {
> +   uint32_t id;
> +   uint8_t data[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;

Looks good to me, waiting for implementation before giving acks.


More information about the Spice-devel mailing list