REST screen change broadcast.

This commit is contained in:
Miroslav Šedivý 2020-11-16 21:57:53 +01:00
parent e8f9e2e4e4
commit 227b6b24c2
2 changed files with 23 additions and 3 deletions

View File

@ -2,12 +2,15 @@ package room
import (
"github.com/go-chi/chi"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"demodesk/neko/internal/types"
"demodesk/neko/internal/http/auth"
)
type RoomHandler struct {
logger zerolog.Logger
sessions types.SessionManager
desktop types.DesktopManager
capture types.CaptureManager
@ -18,9 +21,13 @@ func New(
desktop types.DesktopManager,
capture types.CaptureManager,
) *RoomHandler {
// Init
logger := log.With().
Str("module", "api").
Str("submodule", "room").
Logger()
return &RoomHandler{
logger: logger,
sessions: sessions,
desktop: desktop,
capture: capture,

View File

@ -3,7 +3,10 @@ package room
import (
"net/http"
"demodesk/neko/internal/types/event"
"demodesk/neko/internal/types/message"
"demodesk/neko/internal/utils"
"demodesk/neko/internal/http/auth"
)
type ScreenConfiguration struct {
@ -38,7 +41,17 @@ func (h *RoomHandler) ScreenConfigurationChange(w http.ResponseWriter, r *http.R
return
}
// TODO: Broadcast change to all sessions.
session := auth.GetSession(r)
if err := h.sessions.Broadcast(
message.ScreenResolution{
Event: event.SCREEN_RESOLUTION,
ID: session.ID(),
Width: data.Width,
Height: data.Height,
Rate: data.Rate,
}, nil); err != nil {
h.logger.Warn().Err(err).Msgf("broadcasting event %s has failed", event.SCREEN_RESOLUTION)
}
utils.HttpSuccess(w, data)
}