[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