power_i.h 935 B

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