This allows to better support client mouse using streaming device Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- 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 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel