[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