1package screenfader
 2
 3import (
 4	"math"
 5	"time"
 6
 7	"github.com/fogleman/ease"
 8	"tokei.pi/screendriver"
 9	"tokei.pi/ui"
10)
11
12var ScreenFadeDelay = 5    //s Start fading screen after this duration
13var ScreenFadeDuration = 1 //s
14var LastClickTimestamp = time.Now().UnixMilli()
15
16func ClickRegistered() {
17	LastClickTimestamp = time.Now().UnixMilli()
18	ui.UIScreenOff = false
19}
20
21func AdaptDisplayBrightness() {
22	timeSinceLastClick := int(time.Now().UnixMilli() - LastClickTimestamp)
23	if timeSinceLastClick < ScreenFadeDelay*1000 {
24		screendriver.SetBrightness(255)
25	} else if timeSinceLastClick < ScreenFadeDelay*1000+ScreenFadeDuration*1000 {
26		t := 1.0 - float64(timeSinceLastClick-ScreenFadeDelay*1000)/float64(ScreenFadeDuration*1000)
27		screendriver.SetBrightness(int(math.Round(ease.InOutQuart(t) * 255)))
28	} else {
29		screendriver.SetBrightness(0)
30		ui.UIScreenOff = true
31	}
32}