summaryrefslogtreecommitdiff
path: root/view.go
diff options
context:
space:
mode:
Diffstat (limited to 'view.go')
-rw-r--r--view.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/view.go b/view.go
new file mode 100644
index 0000000..3282f0a
--- /dev/null
+++ b/view.go
@@ -0,0 +1,47 @@
+// Copyright 2022 Benjamin Barenblat
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy of
+// the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+
+package main
+
+import "time"
+
+import (
+ "math"
+
+ "benjamin.barenblat.name/audiotrond/cfa635"
+)
+
+type view struct {
+ LCD *cfa635.LCDState
+ DisplayBrightness float64
+ Mtime time.Time
+}
+
+func updateView(lcd *cfa635.Module, old, new *view) error {
+ if err := cfa635.Update(lcd, old.LCD, new.LCD); err != nil {
+ return err
+ }
+
+ if new.DisplayBrightness != old.DisplayBrightness {
+ bright := new.DisplayBrightness
+ if bright < 0 {
+ bright = 0
+ }
+ if err := lcd.SetBacklight(int(math.Round(new.DisplayBrightness)), 0); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}