From 589628f6ca204e204f7127f6976fe9578cdb1a5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= Date: Sun, 10 Jan 2021 12:37:32 +0100 Subject: [PATCH] cursor image as WS event. --- internal/types/event/events.go | 4 ++++ internal/types/message/messages.go | 13 +++++++++++++ internal/websocket/manager.go | 15 +++++++-------- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/internal/types/event/events.go b/internal/types/event/events.go index 94574dce..48a6a6f9 100644 --- a/internal/types/event/events.go +++ b/internal/types/event/events.go @@ -44,6 +44,10 @@ const ( KEYBOARD_LAYOUT = "keyboard/layout" ) +const ( + CURSOR_IMAGE = "cursor/image" +) + const ( BORADCAST_STATUS = "broadcast/status" ) diff --git a/internal/types/message/messages.go b/internal/types/message/messages.go index 5766331f..f220e8cd 100644 --- a/internal/types/message/messages.go +++ b/internal/types/message/messages.go @@ -143,6 +143,19 @@ type KeyboardLayout struct { Layout string `json:"layout"` } +///////////////////////////// +// Cursor +///////////////////////////// + +type CursorImage struct { + Event string `json:"event,omitempty"` + Uri string `json:"uri"` + Width uint16 `json:"width"` + Height uint16 `json:"height"` + X uint16 `json:"x"` + Y uint16 `json:"y"` +} + ///////////////////////////// // Broadcast ///////////////////////////// diff --git a/internal/websocket/manager.go b/internal/websocket/manager.go index 5b8005b5..f9c2d0e6 100644 --- a/internal/websocket/manager.go +++ b/internal/websocket/manager.go @@ -118,15 +118,14 @@ func (ws *WebSocketManagerCtx) Start() { if cursor != cur.Serial || cur.Serial == 0 { cursor = cur.Serial - // TODO: Refactor. uri, _ := utils.GetCursorImageURI(cur) - ws.sessions.Broadcast(message.Message{ - Event: "cursor/image", - Payload: struct{ - Xhot uint16 - Yhot uint16 - Uri string - }{ cur.Xhot, cur.Yhot, uri }, + ws.sessions.Broadcast(message.CursorImage{ + Event: event.CURSOR_IMAGE, + Uri: uri, + Width: cur.Width, + Height: cur.Height, + X: cur.Xhot, + Y: cur.Yhot, }, nil) }