Skip to content

Commit bec1443

Browse files
committed
feat(rpc): add methods to get and set BacklightSettings
1 parent cd7258e commit bec1443

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

jsonrpc.go

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@ type JSONRPCEvent struct {
3434
Params interface{} `json:"params,omitempty"`
3535
}
3636

37+
type BacklightSettings struct {
38+
MaxBrightness int `json:"max_brightness"`
39+
DimAfter int `json:"dim_after"`
40+
OffAfter int `json:"off_after"`
41+
}
42+
3743
func writeJSONRPCResponse(response JSONRPCResponse, session *Session) {
3844
responseBytes, err := json.Marshal(response)
3945
if err != nil {
@@ -219,6 +225,43 @@ func rpcTryUpdate() error {
219225
return nil
220226
}
221227

228+
func rpcSetBacklightSettings(data *BacklightSettings) error {
229+
LoadConfig()
230+
231+
blConfig := *data
232+
233+
if blConfig.MaxBrightness > 100 || blConfig.MaxBrightness < 0 {
234+
return fmt.Errorf("maxBrightness must be between 0 and 100")
235+
}
236+
237+
if blConfig.DimAfter < 0 {
238+
return fmt.Errorf("dimAfter must be a positive integer")
239+
}
240+
241+
if blConfig.OffAfter < 0 {
242+
return fmt.Errorf("offAfter must be a positive integer")
243+
}
244+
245+
config.DisplayMaxBrightness = blConfig.MaxBrightness
246+
config.DisplayDimAfterMs = int64(blConfig.DimAfter)
247+
config.DisplayOffAfterMs = int64(blConfig.OffAfter)
248+
249+
if err := SaveConfig(); err != nil {
250+
return fmt.Errorf("failed to save config: %w", err)
251+
}
252+
return nil
253+
}
254+
255+
func rpcGetBacklightSettings() (*BacklightSettings, error) {
256+
LoadConfig()
257+
258+
return &BacklightSettings{
259+
MaxBrightness: config.DisplayMaxBrightness,
260+
DimAfter: int(config.DisplayDimAfterMs),
261+
OffAfter: int(config.DisplayOffAfterMs),
262+
}, nil
263+
}
264+
222265
const (
223266
devModeFile = "/userdata/jetkvm/devmode.enable"
224267
sshKeyDir = "/userdata/dropbear/.ssh"
@@ -554,4 +597,6 @@ var rpcHandlers = map[string]RPCHandler{
554597
"getWakeOnLanDevices": {Func: rpcGetWakeOnLanDevices},
555598
"setWakeOnLanDevices": {Func: rpcSetWakeOnLanDevices, Params: []string{"params"}},
556599
"resetConfig": {Func: rpcResetConfig},
600+
"setBacklightSettings": {Func: rpcSetBacklightSettings, Params: []string{"settings"}},
601+
"getBacklightSettings": {Func: rpcGetBacklightSettings},
557602
}

0 commit comments

Comments
 (0)