diff --git a/ESP/include/OTA.h b/ESP/lib/OTA/OTA.h similarity index 100% rename from ESP/include/OTA.h rename to ESP/lib/OTA/OTA.h diff --git a/ESP/lib/Observer/Observer.h b/ESP/lib/Observer/Observer.h new file mode 100644 index 0000000..07fddd1 --- /dev/null +++ b/ESP/lib/Observer/Observer.h @@ -0,0 +1,47 @@ +#pragma once +#include + +namespace ObserverEvent +{ + enum Event + { + configLoaded = 1, + deviceConfigUpdated = 2, + cameraConfigUpdated = 3, + networksConfigUpdated = 4, + }; +} + +class IObserver +{ +public: + void update(ObserverEvent::Event event){}; +}; + +class ISubject +{ +private: + std::set observers; + +public: + void attach(IObserver *observer) + { + this->observers.insert(observer); + } + + void detach(IObserver *observer) + { + this->observers.erase(observer); + } + + void notify(ObserverEvent::Event event) + { + std::set::iterator iterator = observers.begin(); + + while (iterator != observers.end()) + { + (*iterator)->update(event); + ++iterator; + } + } +}; \ No newline at end of file diff --git a/ESP/platformio.ini b/ESP/platformio.ini index 81382a9..769b074 100644 --- a/ESP/platformio.ini +++ b/ESP/platformio.ini @@ -27,7 +27,7 @@ build_flags = ; -include "file_name.hpp" ; this has been added for future movement to a proper library structure build_unflags = -Os board_build.partitions = min_spiffs.csv -lib_ldf_mode = deep +lib_ldf_mode = deep+ upload_speed = 921600 release_version = 0.0.1 ; increase this value every release build lib_deps =