From cda0d125ef337a1003a09af6f7f67cf2a77d7666 Mon Sep 17 00:00:00 2001
From: Serge Bazanski <q3k@q3k.org>
Date: Fri, 28 Jul 2023 23:46:40 +0200
Subject: [PATCH] st4m: run against new captouch api

---
 python_payload/mypystubs/captouch.pyi | 2 +-
 python_payload/st4m/goose.py          | 6 ++++--
 python_payload/st4m/input.py          | 4 +++-
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/python_payload/mypystubs/captouch.pyi b/python_payload/mypystubs/captouch.pyi
index 99edb70179..7c49b0e947 100644
--- a/python_payload/mypystubs/captouch.pyi
+++ b/python_payload/mypystubs/captouch.pyi
@@ -1,4 +1,4 @@
-from typing import Protocol, List
+from typing import Protocol, List, Tuple
 
 class CaptouchPetalPadsState(Protocol):
     """
diff --git a/python_payload/st4m/goose.py b/python_payload/st4m/goose.py
index c4380609ff..bb1c022489 100644
--- a/python_payload/st4m/goose.py
+++ b/python_payload/st4m/goose.py
@@ -17,7 +17,7 @@ if TYPE_CHECKING:
     class ABCBase(metaclass=ABCMeta):
         pass
 
-    from typing import List, Optional
+    from typing import List, Optional, Tuple
     from enum import Enum
 else:
     # We're in CPython or Micropython.
@@ -31,12 +31,13 @@ else:
         return _fail
 
     try:
-        from typing import List, Optional
+        from typing import List, Optional, Tuple
         from enum import Enum
     except ImportError:
         # We're in Micropython.
         List = None
         Optional = None
+        Tuple = None
 
         class Enum:
             pass
@@ -49,4 +50,5 @@ __all__ = [
     "List",
     "Optional",
     "Enum",
+    "Tuple",
 ]
diff --git a/python_payload/st4m/input.py b/python_payload/st4m/input.py
index cdeacc05ba..5c597bf165 100644
--- a/python_payload/st4m/input.py
+++ b/python_payload/st4m/input.py
@@ -2,6 +2,7 @@ from st4m.goose import List, Optional, Enum
 from st4m.ui.ctx import Ctx
 
 import hardware
+import captouch
 
 
 class InputState:
@@ -25,7 +26,8 @@ class InputState:
         Build InputState from current hardware state. Should only be used by the
         Reactor.
         """
-        petal_pressed = [hardware.get_captouch(i) for i in range(10)]
+        cts = captouch.read()
+        petal_pressed = [cts.petals[i].pressed for i in range(10)]
         left_button = hardware.left_button_get()
         right_button = hardware.right_button_get()
 
-- 
GitLab