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

Alon Levy alevy at redhat.com
Wed Nov 28 05:03:06 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.

You mean guest agent will see a drag to the edge of the screen? or it will see:

Drag start
Client to agent message: xfer start (or whatever it was, haven't followed the protocol)

And then do the xfer?

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