mirror of https://github.com/jetkvm/kvm.git
feat(rpc): add methods to get and set BacklightSettings
This commit is contained in:
parent
cd7258efd0
commit
bec1443fe6
45
jsonrpc.go
45
jsonrpc.go
|
@ -34,6 +34,12 @@ type JSONRPCEvent struct {
|
||||||
Params interface{} `json:"params,omitempty"`
|
Params interface{} `json:"params,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type BacklightSettings struct {
|
||||||
|
MaxBrightness int `json:"max_brightness"`
|
||||||
|
DimAfter int `json:"dim_after"`
|
||||||
|
OffAfter int `json:"off_after"`
|
||||||
|
}
|
||||||
|
|
||||||
func writeJSONRPCResponse(response JSONRPCResponse, session *Session) {
|
func writeJSONRPCResponse(response JSONRPCResponse, session *Session) {
|
||||||
responseBytes, err := json.Marshal(response)
|
responseBytes, err := json.Marshal(response)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -219,6 +225,43 @@ func rpcTryUpdate() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func rpcSetBacklightSettings(data *BacklightSettings) error {
|
||||||
|
LoadConfig()
|
||||||
|
|
||||||
|
blConfig := *data
|
||||||
|
|
||||||
|
if blConfig.MaxBrightness > 100 || blConfig.MaxBrightness < 0 {
|
||||||
|
return fmt.Errorf("maxBrightness must be between 0 and 100")
|
||||||
|
}
|
||||||
|
|
||||||
|
if blConfig.DimAfter < 0 {
|
||||||
|
return fmt.Errorf("dimAfter must be a positive integer")
|
||||||
|
}
|
||||||
|
|
||||||
|
if blConfig.OffAfter < 0 {
|
||||||
|
return fmt.Errorf("offAfter must be a positive integer")
|
||||||
|
}
|
||||||
|
|
||||||
|
config.DisplayMaxBrightness = blConfig.MaxBrightness
|
||||||
|
config.DisplayDimAfterMs = int64(blConfig.DimAfter)
|
||||||
|
config.DisplayOffAfterMs = int64(blConfig.OffAfter)
|
||||||
|
|
||||||
|
if err := SaveConfig(); err != nil {
|
||||||
|
return fmt.Errorf("failed to save config: %w", err)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func rpcGetBacklightSettings() (*BacklightSettings, error) {
|
||||||
|
LoadConfig()
|
||||||
|
|
||||||
|
return &BacklightSettings{
|
||||||
|
MaxBrightness: config.DisplayMaxBrightness,
|
||||||
|
DimAfter: int(config.DisplayDimAfterMs),
|
||||||
|
OffAfter: int(config.DisplayOffAfterMs),
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
devModeFile = "/userdata/jetkvm/devmode.enable"
|
devModeFile = "/userdata/jetkvm/devmode.enable"
|
||||||
sshKeyDir = "/userdata/dropbear/.ssh"
|
sshKeyDir = "/userdata/dropbear/.ssh"
|
||||||
|
@ -554,4 +597,6 @@ var rpcHandlers = map[string]RPCHandler{
|
||||||
"getWakeOnLanDevices": {Func: rpcGetWakeOnLanDevices},
|
"getWakeOnLanDevices": {Func: rpcGetWakeOnLanDevices},
|
||||||
"setWakeOnLanDevices": {Func: rpcSetWakeOnLanDevices, Params: []string{"params"}},
|
"setWakeOnLanDevices": {Func: rpcSetWakeOnLanDevices, Params: []string{"params"}},
|
||||||
"resetConfig": {Func: rpcResetConfig},
|
"resetConfig": {Func: rpcResetConfig},
|
||||||
|
"setBacklightSettings": {Func: rpcSetBacklightSettings, Params: []string{"settings"}},
|
||||||
|
"getBacklightSettings": {Func: rpcGetBacklightSettings},
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue