[Spice-devel] [PATCH spice-protocol v3 4/5] Add support for setting cursor shape from guest

Frediano Ziglio fziglio at redhat.com
Wed Aug 23 09:22:05 UTC 2017


This allows to better support client mouse using streaming device

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 spice/stream-device.h | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/spice/stream-device.h b/spice/stream-device.h
index 67d70e1..d8612a4 100644
--- a/spice/stream-device.h
+++ b/spice/stream-device.h
@@ -85,6 +85,8 @@ typedef enum StreamMsgType {
     STREAM_TYPE_START_STOP,
     /* server notify errors to guest */
     STREAM_TYPE_NOTIFY_ERROR,
+    /* guest cursor */
+    STREAM_TYPE_CURSOR_SET,
 } StreamMsgType;
 
 /* Generic extension capabilities.
@@ -164,4 +166,35 @@ typedef struct StreamMsgNotifyError {
     uint8_t msg[0];
 } StreamMsgNotifyError;
 
+#define STREAM_MSG_CURSOR_SET_MAX_WIDTH  1024
+#define STREAM_MSG_CURSOR_SET_MAX_HEIGHT 1024
+
+/* Guest cursor.
+ * This message is sent by the guest to the host.
+ *
+ * States allowed: Streaming
+ */
+typedef struct StreamMsgCursorSet {
+    /* basic cursor information */
+    /* for security reasons width and height should
+     * be limited to STREAM_MSG_CURSOR_SET_MAX_WIDTH and
+     * STREAM_MSG_CURSOR_SET_MAX_HEIGHT */
+    uint16_t width;
+    uint16_t height;
+    uint16_t hot_spot_x;
+    uint16_t hot_spot_y;
+    /* Cursor type, as defined by SpiceCursorType.
+     * Only ALPHA, COLOR24 and COLOR32 are allowed by this protocol
+     */
+    uint8_t type;
+
+    uint8_t padding1[3];
+
+    /* cursor data.
+     * Format and size depends on cursor_header type and size
+     */
+    uint8_t data[0];
+} StreamMsgCursorSet;
+
+
 #endif /* SPICE_STREAM_DEVICE_H_ */
-- 
2.13.5



More information about the Spice-devel mailing list