unitemp.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef UNITEMP
  2. #define UNITEMP
  3. /* Подключение стандартных библиотек */
  4. /* Подключение API Flipper Zero */
  5. //Файловый поток
  6. #include <toolbox/stream/file_stream.h>
  7. //Уведомления
  8. #include <notification/notification.h>
  9. #include <notification/notification_messages.h>
  10. /* Внутренние библиотеки */
  11. //Интерфейсы подключения датчиков
  12. #include "interfaces/Sensors.h"
  13. /* Объявление макроподстановок */
  14. //Имя приложения
  15. #define APP_NAME "Unitemp"
  16. //Путь хранения файлов плагина
  17. #define APP_PATH_FOLDER "/ext/unitemp"
  18. //Имя файла с настройками
  19. #define APP_FILENAME_SETTINGS "settings.cfg"
  20. //Имя файла с датчиками
  21. #define APP_FILENAME_SENSORS "sensors.cfg"
  22. //Максимальное количество датчиков
  23. #define MAX_SENSORS 5 //Больше на экран не лезет
  24. /* Объявление перечислений */
  25. //Единицы измерения
  26. typedef enum { CELSIUM, FARENGATE } measureUnit;
  27. /* Объявление структур */
  28. //Настройки плагина
  29. typedef struct {
  30. //Бесконечная работа подсветки
  31. bool infinityBacklight;
  32. //Единица измерения температуры
  33. //Ложь - градусы Цельсия, истина - Фарeнгейты
  34. measureUnit unit;
  35. //Последнее состояние OTG
  36. bool lastOTGState;
  37. } UnitempSettings;
  38. //Основная структура плагина
  39. typedef struct {
  40. //Основные настройки
  41. UnitempSettings settings;
  42. //Список указателей на датчики
  43. Sensor* sensors[MAX_SENSORS];
  44. //Количество загруженных датчиков
  45. size_t sensors_count;
  46. //SD-карта
  47. Storage* storage; //Хранилище
  48. Stream* file_stream; //Файловый поток
  49. //Уведомления
  50. NotificationApp* notifications;
  51. } Unitemp;
  52. /* Объявление прототипов функций */
  53. extern Unitemp* app;
  54. #endif