[Spice-devel] [PATCH v3] client: add default agent capabilities

Alon Levy alevy at redhat.com
Tue Aug 31 04:17:19 PDT 2010


v3:
 allocate to maximal size on start (even if default is smaller)

diff --git a/client/red_client.cpp b/client/red_client.cpp
index 6c6e066..79f5e6d 100644
--- a/client/red_client.cpp
+++ b/client/red_client.cpp
@@ -75,6 +75,12 @@ private:
     RedClient& _client;
 };
 
+uint32_t default_agent_caps[] = {
+    (1 << VD_AGENT_CAP_MOUSE_STATE) |
+    (1 << VD_AGENT_CAP_MONITORS_CONFIG) |
+    (1 << VD_AGENT_CAP_REPLY)
+    };
+
 void ClipboardEvent::response(AbstractProcessLoop& events_loop)
 {
     static_cast<RedClient*>(events_loop.get_owner())->send_agent_clipboard();
@@ -334,7 +340,12 @@ RedClient::RedClient(Application& application)
     , _glz_window (0, _glz_debug)
 {
     MainChannelLoop* message_loop = static_cast<MainChannelLoop*>(get_message_handler());
+    uint32_t default_caps_size = SPICE_N_ELEMENTS(default_agent_caps);
 
+    _agent_caps_size = VD_AGENT_CAPS_SIZE;
+    ASSERT(VD_AGENT_CAPS_SIZE >= default_caps_size);
+    _agent_caps = new uint32_t[_agent_caps_size];
+    memcpy(_agent_caps, default_agent_caps, default_caps_size);
     message_loop->set_handler(SPICE_MSG_MIGRATE, &RedClient::handle_migrate);
     message_loop->set_handler(SPICE_MSG_SET_ACK, &RedClient::handle_set_ack);
     message_loop->set_handler(SPICE_MSG_PING, &RedClient::handle_ping);


More information about the Spice-devel mailing list