power_i.h 850 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #pragma once
  2. #include "power.h"
  3. #include <stdint.h>
  4. #include <gui/view_dispatcher.h>
  5. #include <gui/gui.h>
  6. #include <gui/modules/popup.h>
  7. #include "views/power_off.h"
  8. #include <notification/notification_messages.h>
  9. #define POWER_BATTERY_HEALTHY_LEVEL 70
  10. typedef enum {
  11. PowerStateNotCharging,
  12. PowerStateCharging,
  13. PowerStateCharged,
  14. } PowerState;
  15. struct Power {
  16. ViewDispatcher* view_dispatcher;
  17. Popup* popup;
  18. PowerOff* power_off;
  19. ViewPort* battery_view_port;
  20. Gui* gui;
  21. NotificationApp* notification;
  22. FuriPubSub* event_pubsub;
  23. PowerEvent event;
  24. PowerState state;
  25. PowerInfo info;
  26. bool battery_low;
  27. bool show_low_bat_level_message;
  28. uint8_t battery_level;
  29. uint8_t power_off_timeout;
  30. osMutexId_t api_mtx;
  31. };
  32. typedef enum {
  33. PowerViewPopup,
  34. PowerViewOff,
  35. } PowerView;