diff options
author | Alon Levy <alevy@redhat.com> | 2010-08-29 17:55:07 +0300 |
---|---|---|
committer | Alon Levy <alevy@redhat.com> | 2010-08-31 11:08:33 +0300 |
commit | 31d502522a99bf759e5704421f3336f60c3b0241 (patch) | |
tree | a8ff7f28b393f3e8a853c3c86fccbb2e1b8989a0 | |
parent | 2335032d3b16fd2d16a7ba5be36df2265764dee2 (diff) |
add vd_agent announce capabilities message
-rw-r--r-- | spice/vd_agent.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/spice/vd_agent.h b/spice/vd_agent.h index 1fcda88..9e5adec 100644 --- a/spice/vd_agent.h +++ b/spice/vd_agent.h @@ -64,6 +64,8 @@ enum { VD_AGENT_REPLY, VD_AGENT_CLIPBOARD, VD_AGENT_DISPLAY_CONFIG, + VD_AGENT_ANNOUNCE_CAPABILITIES, + VD_AGENT_END_MESSAGE, }; typedef struct SPICE_ATTR_PACKED VDAgentMonConfig { @@ -129,6 +131,32 @@ enum { VD_AGENT_CLIPBOARD_UTF8_TEXT = 1, }; +enum { + VD_AGENT_CAP_MOUSE_STATE = 0, + VD_AGENT_CAP_MONITORS_CONFIG, + VD_AGENT_CAP_REPLY, + VD_AGENT_CAP_CLIPBOARD, + VD_AGENT_CAP_DISPLAY_CONFIG, + VD_AGENT_END_CAP, +}; + +typedef struct SPICE_ATTR_PACKED VDAgentAnnounceCapabilities { + uint32_t request; + uint32_t caps[0]; +} VDAgentAnnounceCapabilities; + +#define VD_AGENT_CAPS_SIZE_FROM_MSG_SIZE(msg_size) \ + (((msg_size) - sizeof(VDAgentAnnounceCapabilities)) / sizeof(uint32_t)) + +#define VD_AGENT_CAPS_SIZE ((VD_AGENT_END_CAP + 31) / 32) + +#define VD_AGENT_CAPS_BYTES (((VD_AGENT_END_CAP + 31) / 8) & ~3) + +#define VD_AGENT_HAS_CAPABILITY(caps, caps_size, index) \ + ((index) < (caps_size * 32) && ((caps)[(index) / 32] & (1 << ((index) % 32)))) + +#define VD_AGENT_SET_CAPABILITY(caps, index) \ + { (caps)[(index) / 32] |= (1 << ((index) % 32)); } #include <spice/end-packed.h> |