From efe47a62428c3a2ba38e02bea820047a71f06d60 Mon Sep 17 00:00:00 2001
From: Davide Mor <tazdevil971@gmail.com>
Date: Mon, 26 Jun 2023 23:04:36 +0200
Subject: [PATCH] [sx1278] Updated internals in order to use new interrupt API

---
 src/shared/radio/SX1278/SX1278Common.cpp | 18 +++++++++++++-----
 src/shared/radio/SX1278/SX1278Common.h   |  3 +++
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/src/shared/radio/SX1278/SX1278Common.cpp b/src/shared/radio/SX1278/SX1278Common.cpp
index a815363c7..cdd167504 100644
--- a/src/shared/radio/SX1278/SX1278Common.cpp
+++ b/src/shared/radio/SX1278/SX1278Common.cpp
@@ -45,10 +45,18 @@ void SX1278Common::handleDioIRQ()
     }
 }
 
-void SX1278Common::enableIrqs() {
-    enableExternalInterrupt(dio0.getPort(), dio0.getNumber(), InterruptTrigger::RISING_EDGE);
-    enableExternalInterrupt(dio1.getPort(), dio1.getNumber(), InterruptTrigger::RISING_EDGE);
-    enableExternalInterrupt(dio3.getPort(), dio3.getNumber(), InterruptTrigger::RISING_EDGE);
+void SX1278Common::enableIrqs()
+{
+    enableExternalInterrupt(dio0, InterruptTrigger::RISING_EDGE);
+    enableExternalInterrupt(dio1, InterruptTrigger::RISING_EDGE);
+    enableExternalInterrupt(dio3, InterruptTrigger::RISING_EDGE);
+}
+
+void SX1278Common::disableIrqs()
+{
+    disableExternalInterrupt(dio0);
+    disableExternalInterrupt(dio1);
+    disableExternalInterrupt(dio3);
 }
 
 void SX1278Common::setDefaultMode(Mode mode, DioMapping mapping,
@@ -236,7 +244,7 @@ void SX1278Common::enterMode(Mode mode, DioMapping mapping,
     // Change DIO1 interrupt kind
     if (dio1_trigger != state.dio1_trigger)
     {
-        enableExternalInterrupt(dio1.getPort(), dio1.getNumber(), dio1_trigger);
+        changeInterruptTrigger(dio1, dio1_trigger);
         state.dio1_trigger = dio1_trigger;
     }
 
diff --git a/src/shared/radio/SX1278/SX1278Common.h b/src/shared/radio/SX1278/SX1278Common.h
index 2ac8cc607..fb142ae91 100644
--- a/src/shared/radio/SX1278/SX1278Common.h
+++ b/src/shared/radio/SX1278/SX1278Common.h
@@ -136,6 +136,8 @@ protected:
         enableIrqs();
     }
 
+    ~SX1278Common() { disableIrqs(); }
+
     /**
      * @brief RAII scoped bus lock guard.
      */
@@ -217,6 +219,7 @@ protected:
 
 private:
     void enableIrqs();
+    void disableIrqs();
 
     void waitForIrqInner(LockMode &guard, bool unlock);
 
-- 
GitLab