Compare commits

..

No commits in common. "6445628114bd894b0e6502618c93962f28278956" and "a6eab94e0da6bdb26fd9abbbc1c7ccf4be8a3e94" have entirely different histories.

1 changed files with 23 additions and 24 deletions

View File

@ -12,14 +12,12 @@ import (
var currentScreen = "ui_Boot_Screen" var currentScreen = "ui_Boot_Screen"
var backlightState = 0 // 0 - NORMAL, 1 - DIMMED, 2 - OFF var backlightState = 0 // 0 - NORMAL, 1 - DIMMED, 2 - OFF
var ( var dim_ticker *time.Ticker
dimTicker *time.Ticker var off_ticker *time.Ticker
offTicker *time.Ticker
)
const ( const (
touchscreenDevice string = "/dev/input/event1" TOUCHSCREEN_DEVICE string = "/dev/input/event1"
backlightControlClass string = "/sys/class/backlight/backlight/brightness" BACKLIGHT_CONTROL_CLASS string = "/sys/class/backlight/backlight/brightness"
) )
func switchToScreen(screen string) { func switchToScreen(screen string) {
@ -108,13 +106,13 @@ func setDisplayBrightness(brightness int) error {
} }
// Check the display backlight class is available // Check the display backlight class is available
if _, err := os.Stat(backlightControlClass); errors.Is(err, os.ErrNotExist) { if _, err := os.Stat(BACKLIGHT_CONTROL_CLASS); errors.Is(err, os.ErrNotExist) {
return errors.New("brightness value cannot be set, possibly not running on JetKVM hardware") return errors.New("brightness value cannot be set, possibly not running on JetKVM hardware")
} }
// Set the value // Set the value
bs := []byte(strconv.Itoa(brightness)) bs := []byte(strconv.Itoa(brightness))
err := os.WriteFile(backlightControlClass, bs, 0644) err := os.WriteFile(BACKLIGHT_CONTROL_CLASS, bs, 0644)
if err != nil { if err != nil {
return err return err
} }
@ -131,7 +129,7 @@ func tick_displayDim() {
fmt.Printf("display: failed to dim display: %s\n", err) fmt.Printf("display: failed to dim display: %s\n", err)
} }
dimTicker.Stop() dim_ticker.Stop()
backlightState = 1 backlightState = 1
} }
@ -144,7 +142,7 @@ func tick_displayOff() {
fmt.Printf("display: failed to turn off display: %s\n", err) fmt.Printf("display: failed to turn off display: %s\n", err)
} }
offTicker.Stop() off_ticker.Stop()
backlightState = 2 backlightState = 2
} }
@ -163,15 +161,15 @@ func wakeDisplay(force bool) {
} }
if config.DisplayDimAfterSec == 0 { if config.DisplayDimAfterSec == 0 {
dimTicker.Stop() dim_ticker.Stop()
} else { } else {
dimTicker.Reset(time.Duration(config.DisplayDimAfterSec) * time.Second) dim_ticker.Reset(time.Duration(config.DisplayDimAfterSec) * time.Second)
} }
if config.DisplayOffAfterSec == 0 { if config.DisplayOffAfterSec == 0 {
offTicker.Stop() off_ticker.Stop()
} else { } else {
offTicker.Reset(time.Duration(config.DisplayOffAfterSec) * time.Second) off_ticker.Reset(time.Duration(config.DisplayOffAfterSec) * time.Second)
} }
backlightState = 0 backlightState = 0
} }
@ -181,7 +179,7 @@ func wakeDisplay(force bool) {
// TODO: This is quite a hack, really we should be getting an event from jetkvm_native, or the whole display backlight // TODO: This is quite a hack, really we should be getting an event from jetkvm_native, or the whole display backlight
// control should be hoisted up to jetkvm_native. // control should be hoisted up to jetkvm_native.
func watchTsEvents() { func watchTsEvents() {
ts, err := os.OpenFile(touchscreenDevice, os.O_RDONLY, 0666) ts, err := os.OpenFile(TOUCHSCREEN_DEVICE, os.O_RDONLY, 0666)
if err != nil { if err != nil {
fmt.Printf("display: failed to open touchscreen device: %s\n", err) fmt.Printf("display: failed to open touchscreen device: %s\n", err)
return return
@ -209,30 +207,30 @@ func watchTsEvents() {
// option has the value set to zero, but time.NewTicker only accept positive values. // option has the value set to zero, but time.NewTicker only accept positive values.
func startBacklightTickers() { func startBacklightTickers() {
LoadConfig() LoadConfig()
if dimTicker == nil && config.DisplayDimAfterSec != 0 { if dim_ticker == nil && config.DisplayDimAfterSec != 0 {
fmt.Printf("display: dim_ticker has started.") fmt.Printf("display: dim_ticker has started.")
dimTicker = time.NewTicker(time.Duration(config.DisplayDimAfterSec) * time.Second) dim_ticker = time.NewTicker(time.Duration(config.DisplayDimAfterSec) * time.Second)
defer dimTicker.Stop() defer dim_ticker.Stop()
go func() { go func() {
for { for {
select { select {
case <-dimTicker.C: case <-dim_ticker.C:
tick_displayDim() tick_displayDim()
} }
} }
}() }()
} }
if offTicker == nil && config.DisplayOffAfterSec != 0 { if off_ticker == nil && config.DisplayOffAfterSec != 0 {
fmt.Printf("display: off_ticker has started.") fmt.Printf("display: off_ticker has started.")
offTicker = time.NewTicker(time.Duration(config.DisplayOffAfterSec) * time.Second) off_ticker = time.NewTicker(time.Duration(config.DisplayOffAfterSec) * time.Second)
defer offTicker.Stop() defer off_ticker.Stop()
go func() { go func() {
for { for {
select { select {
case <-offTicker.C: case <-off_ticker.C:
tick_displayOff() tick_displayOff()
} }
} }
@ -250,8 +248,9 @@ func init() {
fmt.Println("display inited") fmt.Println("display inited")
wakeDisplay(false) wakeDisplay(false)
requestDisplayUpdate() requestDisplayUpdate()
startBacklightTickers()
}() }()
startBacklightTickers()
go watchTsEvents() go watchTsEvents()
} }