settings.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #ifndef Settings_h
  2. #define Settings_h
  3. #include "configs.h"
  4. #include "SPIFFS.h"
  5. #include <FS.h>
  6. #include <ArduinoJson.h>
  7. #define FORMAT_SPIFFS_IF_FAILED true
  8. #ifdef HAS_SCREEN
  9. #include "Display.h"
  10. extern Display display_obj;
  11. #endif
  12. class Settings {
  13. private:
  14. String json_settings_string;
  15. bool createDefaultSettings(fs::FS &fs);
  16. public:
  17. bool begin();
  18. template <typename T>
  19. T loadSetting(String name);
  20. template <typename T>
  21. T saveSetting(String key, bool value);
  22. bool toggleSetting(String key);
  23. String getSettingType(String key);
  24. String setting_index_to_name(int i);
  25. int getNumberSettings();
  26. //template<>
  27. //int loadSetting<int>(String key);
  28. //template<>
  29. //String loadSetting<String>(String key);
  30. //template<>
  31. //bool loadSetting<bool>(String key);
  32. //template<>
  33. //uint8_t loadSetting<uint8_t>(String key);
  34. String getSettingsString();
  35. void printJsonSettings(String json_string);
  36. void main(uint32_t currentTime);
  37. };
  38. #endif