Acked-by: Jonathon Jongsma <jjongsma@xxxxxxxxxx> On Fri, 2017-08-25 at 10:54 +0100, Frediano Ziglio wrote: > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> > --- > server/stream-device.c | 35 ++++++++++++++++++++++++++++++++++- > 1 file changed, 34 insertions(+), 1 deletion(-) > > diff --git a/server/stream-device.c b/server/stream-device.c > index 88e5abba..3d33ca13 100644 > --- a/server/stream-device.c > +++ b/server/stream-device.c > @@ -64,7 +64,7 @@ G_DEFINE_TYPE(StreamDevice, stream_device, > RED_TYPE_CHAR_DEVICE) > typedef void StreamMsgHandler(StreamDevice *dev, > SpiceCharDeviceInstance *sin); > > static StreamMsgHandler handle_msg_format, handle_msg_data, > handle_msg_invalid, > - handle_msg_cursor_set; > + handle_msg_cursor_set, handle_msg_cursor_move; > > static RedPipeItem * > stream_device_read_msg_from_dev(RedCharDevice *self, > SpiceCharDeviceInstance *sin) > @@ -111,6 +111,13 @@ stream_device_read_msg_from_dev(RedCharDevice > *self, SpiceCharDeviceInstance *si > case STREAM_TYPE_CURSOR_SET: > handle_msg_cursor_set(dev, sin); > break; > + case STREAM_TYPE_CURSOR_MOVE: > + if (dev->hdr.size != sizeof(StreamMsgCursorMove)) { > + handle_msg_invalid(dev, sin); > + } else { > + handle_msg_cursor_move(dev, sin); > + } > + break; > case STREAM_TYPE_CAPABILITIES: > /* FIXME */ > default: > @@ -294,6 +301,32 @@ handle_msg_cursor_set(StreamDevice *dev, > SpiceCharDeviceInstance *sin) > } > > static void > +handle_msg_cursor_move(StreamDevice *dev, SpiceCharDeviceInstance > *sin) > +{ > + StreamMsgCursorMove move; > + SpiceCharDeviceInterface *sif = > spice_char_device_get_interface(sin); > + int n = sif->read(sin, (uint8_t *) &move, sizeof(move)); > + if (n == 0) { > + return; > + } > + if (n != sizeof(move)) { > + handle_msg_invalid(dev, sin); > + return; > + } > + move.x = GINT32_FROM_LE(move.x); > + move.y = GINT32_FROM_LE(move.y); > + > + RedCursorCmd *cmd = spice_new0(RedCursorCmd, 1); > + cmd->type = QXL_CURSOR_MOVE; > + cmd->u.position.x = move.x; > + cmd->u.position.y = move.y; > + > + cursor_channel_process_cmd(dev->cursor_channel, cmd); > + > + dev->hdr_pos = 0; > +} > + > +static void > stream_device_send_msg_to_client(RedCharDevice *self, RedPipeItem > *msg, RedClient *client) > { > } _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel