From d4dfaa1dd088b6c0effe5c83e1a95aacc187b0c5 Mon Sep 17 00:00:00 2001
From: ave <ave@ave.zone>
Date: Sun, 27 Aug 2023 16:42:00 +0200
Subject: [PATCH] default python apps: use super.on_enter/on_exit reliably

fix shoegaze

fix tiny_sampler
---
 python_payload/apps/audio_passthrough/__init__.py | 2 ++
 python_payload/apps/gay_drums/__init__.py         | 1 +
 python_payload/apps/harmonic_demo/__init__.py     | 4 +++-
 python_payload/apps/melodic_demo/__init__.py      | 3 ++-
 python_payload/apps/nick/__init__.py              | 1 +
 python_payload/apps/otamatone/__init__.py         | 1 +
 python_payload/apps/shoegaze/__init__.py          | 2 ++
 python_payload/apps/tiny_sampler/__init__.py      | 1 +
 python_payload/apps/w1f1/__init__.py              | 1 +
 python_payload/apps/wurzelitzer/__init__.py       | 1 +
 10 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/python_payload/apps/audio_passthrough/__init__.py b/python_payload/apps/audio_passthrough/__init__.py
index 56036120c0..8408b02ccd 100644
--- a/python_payload/apps/audio_passthrough/__init__.py
+++ b/python_payload/apps/audio_passthrough/__init__.py
@@ -27,6 +27,7 @@ class AudioPassthrough(Application):
         self._force_mode: str = "AUTO"
 
     def on_enter(self, vm: Optional[ViewManager]) -> None:
+        super().on_enter(vm)
         self._force_mode = "AUTO"
 
     def draw(self, ctx: Context) -> None:
@@ -96,6 +97,7 @@ class AudioPassthrough(Application):
         ctx.text("force line in/out")
 
     def on_exit(self) -> None:
+        super().on_exit()
         # Mic passthrough has a loopback risk
         if self._force_mode == "FORCE_MIC":
             self._force_mode = "FORCE_NONE"
diff --git a/python_payload/apps/gay_drums/__init__.py b/python_payload/apps/gay_drums/__init__.py
index fadc8affa3..b738ffe993 100644
--- a/python_payload/apps/gay_drums/__init__.py
+++ b/python_payload/apps/gay_drums/__init__.py
@@ -562,5 +562,6 @@ class GayDrums(Application):
         self.ct_prev = ct
 
     def on_enter(self, vm: Optional[ViewManager]) -> None:
+        super().on_enter(vm)
         self.ct_prev = None
         self.draw_background_counter = 2
diff --git a/python_payload/apps/harmonic_demo/__init__.py b/python_payload/apps/harmonic_demo/__init__.py
index 8a0ca7cf17..254d20f184 100644
--- a/python_payload/apps/harmonic_demo/__init__.py
+++ b/python_payload/apps/harmonic_demo/__init__.py
@@ -5,6 +5,8 @@ import leds
 
 from st3m.goose import List
 from st3m.input import InputState
+from st3m.goose import Optional
+from st3m.ui.view import ViewManager
 from ctx import Context
 import cmath
 import math
@@ -129,7 +131,7 @@ class HarmonicApp(Application):
         self.cp_prev = cp
 
     def on_enter(self, vm: Optional[ViewManager]) -> None:
-        # super().on_enter(vm) idk not using it in shoegaze, works fine?
+        super().on_enter(vm)
         if self.blm is None:
             self._build_synth()
         self.blm.foreground = True
diff --git a/python_payload/apps/melodic_demo/__init__.py b/python_payload/apps/melodic_demo/__init__.py
index 0bef5fea19..45a7ab6698 100644
--- a/python_payload/apps/melodic_demo/__init__.py
+++ b/python_payload/apps/melodic_demo/__init__.py
@@ -124,13 +124,14 @@ class MelodicApp(Application):
         leds.update()
 
     def on_enter(self, vm: Optional[ViewManager]) -> None:
-        # super().on_enter(vm) idk not using it in shoegaze, works fine?
+        super().on_enter(vm)
         if self.blm is None:
             self._build_synth()
         self.blm.foreground = True
         self.make_scale()
 
     def on_exit(self):
+        super().on_exit()
         if self.blm is not None:
             self.blm.free = True
         self.blm = None
diff --git a/python_payload/apps/nick/__init__.py b/python_payload/apps/nick/__init__.py
index 7442375787..43bd2a4ff6 100644
--- a/python_payload/apps/nick/__init__.py
+++ b/python_payload/apps/nick/__init__.py
@@ -163,6 +163,7 @@ class NickApp(Application):
         # ctx.fill()
 
     def on_exit(self) -> None:
+        super().on_exit()
         if not self._config.config_errors:
             self._config.save(self._filename)
 
diff --git a/python_payload/apps/otamatone/__init__.py b/python_payload/apps/otamatone/__init__.py
index 10a1ee803f..ee988ea873 100644
--- a/python_payload/apps/otamatone/__init__.py
+++ b/python_payload/apps/otamatone/__init__.py
@@ -116,6 +116,7 @@ class Otamatone(Application):
         self._lp.signals.freq = 4000
 
     def on_exit(self):
+        super().on_exit()
         if self._blm is not None:
             self._blm.free = True
         self._blm = None
diff --git a/python_payload/apps/shoegaze/__init__.py b/python_payload/apps/shoegaze/__init__.py
index 224f075823..a0cb9b4fd7 100644
--- a/python_payload/apps/shoegaze/__init__.py
+++ b/python_payload/apps/shoegaze/__init__.py
@@ -231,12 +231,14 @@ class ShoegazeApp(Application):
             self.bass_string.signals.trigger.start()
 
     def on_enter(self, vm: Optional[ViewManager]) -> None:
+        super().on_enter(vm)
         if self.blm is None:
             self._build_synth()
         if self.blm is not None:  # silly mypy
             self.blm.foreground = True
 
     def on_exit(self) -> None:
+        super().on_exit()
         if self.blm is not None:
             self.blm.free = True  # yeeting the channel in the backend
         self.blm = None
diff --git a/python_payload/apps/tiny_sampler/__init__.py b/python_payload/apps/tiny_sampler/__init__.py
index 40031e0d89..1501275700 100644
--- a/python_payload/apps/tiny_sampler/__init__.py
+++ b/python_payload/apps/tiny_sampler/__init__.py
@@ -90,6 +90,7 @@ class TinySampler(Application):
         self.ct_prev = ct
 
     def on_exit(self) -> None:
+        super().on_exit()
         for i in range(5):
             if self.is_recording[i]:
                 self.samplers[i].signals.rec_trigger.stop()
diff --git a/python_payload/apps/w1f1/__init__.py b/python_payload/apps/w1f1/__init__.py
index 607236843f..fe4c4de87a 100644
--- a/python_payload/apps/w1f1/__init__.py
+++ b/python_payload/apps/w1f1/__init__.py
@@ -129,6 +129,7 @@ class WifiApp(Application):
         leds.set_rgb((direction * 4) + 1, r, g, b)
 
     def on_exit(self) -> None:
+        super().on_exit()
         leds.set_all_rgb(0, 0, 0)
         leds.update()
 
diff --git a/python_payload/apps/wurzelitzer/__init__.py b/python_payload/apps/wurzelitzer/__init__.py
index cd0b10043d..7b6ac5299b 100644
--- a/python_payload/apps/wurzelitzer/__init__.py
+++ b/python_payload/apps/wurzelitzer/__init__.py
@@ -55,6 +55,7 @@ class JukeBox(Application):
         self.load_stream()
 
     def on_exit(self):
+        super().on_exit()
         media.stop()
 
 
-- 
GitLab