mirror of
https://github.com/m1k1o/neko.git
synced 2024-07-24 14:40:50 +12:00
update screen WS.
This commit is contained in:
@ -64,6 +64,13 @@ func (h *MessageHandlerCtx) Message(session types.Session, raw []byte) error {
|
||||
return h.controlGive(session, payload)
|
||||
})
|
||||
|
||||
// Screen Events
|
||||
case event.SCREEN_SET:
|
||||
payload := &message.ScreenSize{}
|
||||
err = utils.Unmarshal(payload, raw, func() error {
|
||||
return h.screenSet(session, payload)
|
||||
})
|
||||
|
||||
// Clipboard Events
|
||||
case event.CLIPBOARD_SET:
|
||||
payload := &message.ClipboardData{}
|
||||
@ -82,17 +89,6 @@ func (h *MessageHandlerCtx) Message(session types.Session, raw []byte) error {
|
||||
err = utils.Unmarshal(payload, raw, func() error {
|
||||
return h.keyboardModifiers(session, payload)
|
||||
})
|
||||
|
||||
// Screen Events
|
||||
case event.SCREEN_RESOLUTION:
|
||||
err = h.screenSize(session)
|
||||
case event.SCREEN_CONFIGURATIONS:
|
||||
err = h.screenConfigurations(session)
|
||||
case event.SCREEN_SET:
|
||||
payload := &message.ScreenResolution{}
|
||||
err = utils.Unmarshal(payload, raw, func() error {
|
||||
return h.screenSizeChange(session, payload)
|
||||
})
|
||||
default:
|
||||
return errors.Errorf("unknown message event %s", header.Event)
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ import (
|
||||
"demodesk/neko/internal/types/message"
|
||||
)
|
||||
|
||||
func (h *MessageHandlerCtx) screenSizeChange(session types.Session, payload *message.ScreenResolution) error {
|
||||
func (h *MessageHandlerCtx) screenSet(session types.Session, payload *message.ScreenSize) error {
|
||||
if !session.Admin() {
|
||||
h.logger.Debug().Msg("user not admin")
|
||||
return nil
|
||||
@ -17,9 +17,8 @@ func (h *MessageHandlerCtx) screenSizeChange(session types.Session, payload *mes
|
||||
}
|
||||
|
||||
h.sessions.Broadcast(
|
||||
message.ScreenResolution{
|
||||
Event: event.SCREEN_RESOLUTION,
|
||||
ID: session.ID(),
|
||||
message.ScreenSize{
|
||||
Event: event.SCREEN_UPDATED,
|
||||
Width: payload.Width,
|
||||
Height: payload.Height,
|
||||
Rate: payload.Rate,
|
||||
@ -27,32 +26,3 @@ func (h *MessageHandlerCtx) screenSizeChange(session types.Session, payload *mes
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (h *MessageHandlerCtx) screenSize(session types.Session) error {
|
||||
size := h.desktop.GetScreenSize()
|
||||
if size == nil {
|
||||
h.logger.Debug().Msg("could not get screen size")
|
||||
return nil
|
||||
}
|
||||
|
||||
return session.Send(
|
||||
message.ScreenResolution{
|
||||
Event: event.SCREEN_RESOLUTION,
|
||||
Width: size.Width,
|
||||
Height: size.Height,
|
||||
Rate: int(size.Rate),
|
||||
})
|
||||
}
|
||||
|
||||
func (h *MessageHandlerCtx) screenConfigurations(session types.Session) error {
|
||||
if !session.Admin() {
|
||||
h.logger.Debug().Msg("user not admin")
|
||||
return nil
|
||||
}
|
||||
|
||||
return session.Send(
|
||||
message.ScreenConfigurations{
|
||||
Event: event.SCREEN_CONFIGURATIONS,
|
||||
Configurations: h.desktop.ScreenConfigurations(),
|
||||
})
|
||||
}
|
||||
|
@ -12,13 +12,6 @@ func (h *MessageHandlerCtx) SessionCreated(session types.Session) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if session.Admin() {
|
||||
// send screen configurations if admin
|
||||
if err := h.screenConfigurations(session); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -42,11 +35,6 @@ func (h *MessageHandlerCtx) SessionConnected(session types.Session) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// send current screen size
|
||||
if err := h.screenSize(session); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// tell session there is a host
|
||||
host := h.sessions.GetHost()
|
||||
if host != nil {
|
||||
|
Reference in New Issue
Block a user