From 66e24e755f3ed4194c0cb8cde1cbd6fee84695b4 Mon Sep 17 00:00:00 2001
From: Eric Duminil <eric.duminil@gmail.com>
Date: Thu, 10 Feb 2022 17:04:36 +0100
Subject: [PATCH] A bit cleaner

---
 ampel-firmware/ampel-firmware.ino |  3 +--
 ampel-firmware/web_config.cpp     | 12 ++++++++----
 ampel-firmware/web_config.h       |  5 ++---
 3 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/ampel-firmware/ampel-firmware.ino b/ampel-firmware/ampel-firmware.ino
index f937902..16653ac 100644
--- a/ampel-firmware/ampel-firmware.ino
+++ b/ampel-firmware/ampel-firmware.ino
@@ -56,10 +56,9 @@
  * and define your credentials and parameters in 'config.h'.
  */
 
-iotwebconf::WifiAuthInfo* failedConnection() {
+void failedConnection() {
   Serial.println("Seriously. What???");
   led_effects::showKITTWheel(color::red);
-  return nullptr;
 }
 
 /*****************************************************************
diff --git a/ampel-firmware/web_config.cpp b/ampel-firmware/web_config.cpp
index 7a09ded..f45dc60 100644
--- a/ampel-firmware/web_config.cpp
+++ b/ampel-firmware/web_config.cpp
@@ -158,12 +158,16 @@ namespace web_config {
     iotWebConf->doLoop(); // Listen for HTTP requests from clients
   }
 
-  void setWifiConnectionCallback(void (*function)()) {
-    iotWebConf->setWifiConnectionCallback(function);
+  void setWifiConnectionCallback(void (*success_function)()) {
+    iotWebConf->setWifiConnectionCallback(success_function);
   }
 
-  void setWifiFailCallback(WifiAuthInfo* (*function)()) {
-    iotWebConf->setWifiConnectionFailedHandler(function);
+  void setWifiFailCallback(void (*fail_function)()) {
+    std::function<WifiAuthInfo* ()> fail_and_return_null = [fail_function]() {
+      fail_function();
+      return nullptr;
+    };
+    iotWebConf->setWifiConnectionFailedHandler(fail_and_return_null);
   }
 
   void initialize() {
diff --git a/ampel-firmware/web_config.h b/ampel-firmware/web_config.h
index af7d382..3af2cba 100644
--- a/ampel-firmware/web_config.h
+++ b/ampel-firmware/web_config.h
@@ -2,7 +2,6 @@
 #define AMPEL_WEB_CONFIG_H_
 
 #define STRING_LEN 64
-#include <IotWebConf.h>
 
 #if defined(ESP8266)
 #  include <ESP8266WebServer.h>
@@ -51,8 +50,8 @@ namespace config {
 
 namespace web_config {
   void initialize();
-  void setWifiConnectionCallback(void (*function)());
-  void setWifiFailCallback(iotwebconf::WifiAuthInfo* (*function)());
+  void setWifiConnectionCallback(void (*success_function)());
+  void setWifiFailCallback(void (*fail_function)());
   void update();
   //TODO: Add saveConfig(), for e.g. after custom setters. Or simply reset after each configchange?
 
-- 
GitLab