From 6ae71812984175e0222972e13c3f7136eeee49b2 Mon Sep 17 00:00:00 2001
From: Serge Bazanski <q3k@q3k.org>
Date: Fri, 4 Aug 2023 23:30:13 +0200
Subject: [PATCH] py: update InputState to use new st3m captouch structures

---
 python_payload/apps/cap_touch_demo.py       |  5 +++--
 python_payload/apps/melodic_demo.py         |  3 ++-
 python_payload/st3m/input.py                | 20 +++++---------------
 python_payload/st3m/ui/elements/overlays.py |  4 ++--
 4 files changed, 12 insertions(+), 20 deletions(-)

diff --git a/python_payload/apps/cap_touch_demo.py b/python_payload/apps/cap_touch_demo.py
index a3dea8fa3c..1e7a80c86c 100644
--- a/python_payload/apps/cap_touch_demo.py
+++ b/python_payload/apps/cap_touch_demo.py
@@ -55,9 +55,10 @@ class CapTouchDemo(application.Application):
         super().think(ins, delta_ms)
         self.dots = []
         for i in range(10):
-            (rad, phi) = ins.petal_pos[i]
+            petal = ins.captouch.petals[i]
+            (rad, phi) = petal.position
             size = 4
-            if ins.petal_pressed[i]:
+            if petal.pressed:
                 size += 4
             x = 70 + (rad / 1000) + 0j
             x += (phi / 600) * 1j
diff --git a/python_payload/apps/melodic_demo.py b/python_payload/apps/melodic_demo.py
index 5c3d2110ac..0462b9f688 100644
--- a/python_payload/apps/melodic_demo.py
+++ b/python_payload/apps/melodic_demo.py
@@ -46,7 +46,8 @@ def run(ins: InputState) -> None:
     global octave
     global synths
     for i in range(10):
-        if ins.petal_pressed[i]:
+        petal = ins.captouch.petals[i]
+        if petal.pressed:
             if i == 4:
                 octave = -1
                 adjust_playing_field_to_octave()
diff --git a/python_payload/st3m/input.py b/python_payload/st3m/input.py
index 4fa79b6b2f..a8bd57e60e 100644
--- a/python_payload/st3m/input.py
+++ b/python_payload/st3m/input.py
@@ -18,15 +18,12 @@ class InputState:
 
     def __init__(
         self,
-        petal_pressed: List[bool],
-        # petal_pads: List[List[int]],
-        petal_pos: List[Tuple[int, int]],
+        captouch: captouch.CaptouchState,
         left_button: int,
         right_button: int,
     ) -> None:
-        self.petal_pressed = petal_pressed
         # self.petal_pads = petal_pads
-        self.petal_pos = petal_pos
+        self.captouch = captouch
         self.left_button = left_button
         self.right_button = right_button
 
@@ -37,17 +34,10 @@ class InputState:
         Reactor.
         """
         cts = captouch.read()
-        petal_pressed = [cts.petals[i].pressed for i in range(10)]
-        # petal_pads = [
-        #    [hardware.captouch_get_petal_pad(petal_ix, pad_ix) for pad_ix in range(3)]
-        #    for petal_ix in range(10)
-        # ]
-        petal_pos = [cts.petals[petal_ix].position for petal_ix in range(10)]
-
         left_button = hardware.left_button_get()
         right_button = hardware.right_button_get()
 
-        return InputState(petal_pressed, petal_pos, left_button, right_button)
+        return InputState(cts, left_button, right_button)
 
 
 class RepeatSettings:
@@ -281,9 +271,9 @@ class CaptouchState:
     def __init__(self) -> None:
         self.petals = [PetalState(i) for i in range(10)]
 
-    def _update(self, ts: int, hr: InputState) -> None:
+    def _update(self, ts: int, ins: InputState) -> None:
         for i, petal in enumerate(self.petals):
-            petal._update(ts, hr.petal_pressed[i])
+            petal._update(ts, ins.captouch.petals[i].pressed)
 
     def _ignore_pressed(self) -> None:
         for petal in self.petals:
diff --git a/python_payload/st3m/ui/elements/overlays.py b/python_payload/st3m/ui/elements/overlays.py
index ef80808f9e..fa06a953a5 100644
--- a/python_payload/st3m/ui/elements/overlays.py
+++ b/python_payload/st3m/ui/elements/overlays.py
@@ -154,8 +154,8 @@ class OverlayCaptouch(Overlay):
             self.pressed = False
 
         def think(self, s: InputState, delta_ms: int) -> None:
-            self.pressed = s.petal_pressed[self.ix]
-            (rad, phi) = s.petal_pos[self.ix]
+            self.pressed = s.captouch.petals[self.ix].pressed
+            (rad, phi) = s.captouch.petals[self.ix].position
             self.phi = phi
             self.rad = rad
 
-- 
GitLab