mirror of
https://github.com/m1k1o/neko.git
synced 2024-07-24 14:40:50 +12:00
set screen size using struct.
This commit is contained in:
parent
0e09609c67
commit
3bbe3781c8
@ -3,15 +3,16 @@ package room
|
|||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
"demodesk/neko/internal/types"
|
||||||
"demodesk/neko/internal/types/event"
|
"demodesk/neko/internal/types/event"
|
||||||
"demodesk/neko/internal/types/message"
|
"demodesk/neko/internal/types/message"
|
||||||
"demodesk/neko/internal/utils"
|
"demodesk/neko/internal/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ScreenConfigurationPayload struct {
|
type ScreenConfigurationPayload struct {
|
||||||
Width int `json:"width"`
|
Width int `json:"width"`
|
||||||
Height int `json:"height"`
|
Height int `json:"height"`
|
||||||
Rate int `json:"rate"`
|
Rate int16 `json:"rate"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *RoomHandler) screenConfiguration(w http.ResponseWriter, r *http.Request) {
|
func (h *RoomHandler) screenConfiguration(w http.ResponseWriter, r *http.Request) {
|
||||||
@ -25,7 +26,7 @@ func (h *RoomHandler) screenConfiguration(w http.ResponseWriter, r *http.Request
|
|||||||
utils.HttpSuccess(w, ScreenConfigurationPayload{
|
utils.HttpSuccess(w, ScreenConfigurationPayload{
|
||||||
Width: size.Width,
|
Width: size.Width,
|
||||||
Height: size.Height,
|
Height: size.Height,
|
||||||
Rate: int(size.Rate),
|
Rate: size.Rate,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,7 +36,11 @@ func (h *RoomHandler) screenConfigurationChange(w http.ResponseWriter, r *http.R
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := h.desktop.ChangeScreenSize(data.Width, data.Height, data.Rate); err != nil {
|
if err := h.desktop.SetScreenSize(types.ScreenSize{
|
||||||
|
Width: data.Width,
|
||||||
|
Height: data.Height,
|
||||||
|
Rate: data.Rate,
|
||||||
|
}); err != nil {
|
||||||
utils.HttpUnprocessableEntity(w, err)
|
utils.HttpUnprocessableEntity(w, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -60,7 +65,7 @@ func (h *RoomHandler) screenConfigurationsList(w http.ResponseWriter, r *http.Re
|
|||||||
list = append(list, ScreenConfigurationPayload{
|
list = append(list, ScreenConfigurationPayload{
|
||||||
Width: size.Width,
|
Width: size.Width,
|
||||||
Height: size.Height,
|
Height: size.Height,
|
||||||
Rate: int(fps),
|
Rate: fps,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ import (
|
|||||||
type Desktop struct {
|
type Desktop struct {
|
||||||
ScreenWidth int
|
ScreenWidth int
|
||||||
ScreenHeight int
|
ScreenHeight int
|
||||||
ScreenRate int
|
ScreenRate int16
|
||||||
}
|
}
|
||||||
|
|
||||||
func (Desktop) Init(cmd *cobra.Command) error {
|
func (Desktop) Init(cmd *cobra.Command) error {
|
||||||
@ -39,7 +39,7 @@ func (s *Desktop) Set() {
|
|||||||
if err1 == nil && err2 == nil && err3 == nil {
|
if err1 == nil && err2 == nil && err3 == nil {
|
||||||
s.ScreenWidth = int(width)
|
s.ScreenWidth = int(width)
|
||||||
s.ScreenHeight = int(height)
|
s.ScreenHeight = int(height)
|
||||||
s.ScreenRate = int(rate)
|
s.ScreenRate = int16(rate)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,11 +40,7 @@ func (manager *DesktopManagerCtx) ScreenConfigurations() map[int]types.ScreenCon
|
|||||||
return xorg.ScreenConfigurations
|
return xorg.ScreenConfigurations
|
||||||
}
|
}
|
||||||
|
|
||||||
func (manager *DesktopManagerCtx) GetScreenSize() *types.ScreenSize {
|
func (manager *DesktopManagerCtx) SetScreenSize(size types.ScreenSize) error {
|
||||||
return xorg.GetScreenSize()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (manager *DesktopManagerCtx) ChangeScreenSize(width int, height int, rate int) error {
|
|
||||||
mu.Lock()
|
mu.Lock()
|
||||||
manager.emmiter.Emit("before_screen_size_change")
|
manager.emmiter.Emit("before_screen_size_change")
|
||||||
|
|
||||||
@ -53,7 +49,11 @@ func (manager *DesktopManagerCtx) ChangeScreenSize(width int, height int, rate i
|
|||||||
mu.Unlock()
|
mu.Unlock()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
return xorg.ChangeScreenSize(width, height, rate)
|
return xorg.ChangeScreenSize(size.Width, size.Height, size.Rate)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (manager *DesktopManagerCtx) GetScreenSize() *types.ScreenSize {
|
||||||
|
return xorg.GetScreenSize()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (manager *DesktopManagerCtx) SetKeyboardMap(kbd types.KeyboardMap) error {
|
func (manager *DesktopManagerCtx) SetKeyboardMap(kbd types.KeyboardMap) error {
|
||||||
|
@ -167,14 +167,14 @@ func CheckKeys(duration time.Duration) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func ChangeScreenSize(width int, height int, rate int) error {
|
func ChangeScreenSize(width int, height int, rate int16) error {
|
||||||
mu.Lock()
|
mu.Lock()
|
||||||
defer mu.Unlock()
|
defer mu.Unlock()
|
||||||
|
|
||||||
for index, size := range ScreenConfigurations {
|
for index, size := range ScreenConfigurations {
|
||||||
if size.Width == width && size.Height == height {
|
if size.Width == width && size.Height == height {
|
||||||
for _, fps := range size.Rates {
|
for _, fps := range size.Rates {
|
||||||
if int16(rate) == fps {
|
if rate == fps {
|
||||||
C.XSetScreenConfiguration(C.int(index), C.short(fps))
|
C.XSetScreenConfiguration(C.int(index), C.short(fps))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,6 @@ type DesktopManager interface {
|
|||||||
OnAfterScreenSizeChange(listener func())
|
OnAfterScreenSizeChange(listener func())
|
||||||
|
|
||||||
// xorg
|
// xorg
|
||||||
ChangeScreenSize(width int, height int, rate int) error
|
|
||||||
Move(x, y int)
|
Move(x, y int)
|
||||||
Scroll(x, y int)
|
Scroll(x, y int)
|
||||||
ButtonDown(code int) error
|
ButtonDown(code int) error
|
||||||
@ -47,6 +46,7 @@ type DesktopManager interface {
|
|||||||
KeyUp(code uint64) error
|
KeyUp(code uint64) error
|
||||||
ResetKeys()
|
ResetKeys()
|
||||||
ScreenConfigurations() map[int]ScreenConfiguration
|
ScreenConfigurations() map[int]ScreenConfiguration
|
||||||
|
SetScreenSize(ScreenSize) error
|
||||||
GetScreenSize() *ScreenSize
|
GetScreenSize() *ScreenSize
|
||||||
SetKeyboardMap(KeyboardMap) error
|
SetKeyboardMap(KeyboardMap) error
|
||||||
GetKeyboardMap() (*KeyboardMap, error)
|
GetKeyboardMap() (*KeyboardMap, error)
|
||||||
|
@ -116,7 +116,7 @@ type ScreenSize struct {
|
|||||||
Event string `json:"event,omitempty"`
|
Event string `json:"event,omitempty"`
|
||||||
Width int `json:"width"`
|
Width int `json:"width"`
|
||||||
Height int `json:"height"`
|
Height int `json:"height"`
|
||||||
Rate int `json:"rate"`
|
Rate int16 `json:"rate"`
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////
|
/////////////////////////////
|
||||||
|
@ -12,7 +12,11 @@ func (h *MessageHandlerCtx) screenSet(session types.Session, payload *message.Sc
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := h.desktop.ChangeScreenSize(payload.Width, payload.Height, payload.Rate); err != nil {
|
if err := h.desktop.SetScreenSize(types.ScreenSize{
|
||||||
|
Width: payload.Width,
|
||||||
|
Height: payload.Height,
|
||||||
|
Rate: payload.Rate,
|
||||||
|
}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ func (h *MessageHandlerCtx) systemInit(session types.Session) error {
|
|||||||
ScreenSize: message.ScreenSize{
|
ScreenSize: message.ScreenSize{
|
||||||
Width: size.Width,
|
Width: size.Width,
|
||||||
Height: size.Height,
|
Height: size.Height,
|
||||||
Rate: int(size.Rate),
|
Rate: size.Rate,
|
||||||
},
|
},
|
||||||
Members: members,
|
Members: members,
|
||||||
ImplicitHosting: h.sessions.ImplicitHosting(),
|
ImplicitHosting: h.sessions.ImplicitHosting(),
|
||||||
@ -70,7 +70,7 @@ func (h *MessageHandlerCtx) systemAdmin(session types.Session) error {
|
|||||||
screenSizesList = append(screenSizesList, message.ScreenSize{
|
screenSizesList = append(screenSizesList, message.ScreenSize{
|
||||||
Width: size.Width,
|
Width: size.Width,
|
||||||
Height: size.Height,
|
Height: size.Height,
|
||||||
Rate: int(fps),
|
Rate: fps,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user