Loading...
Searching...
No Matches
power_i.h
1#pragma once
2
3#include "power.h"
4
5#include <gui/gui.h>
6#include <gui/view_holder.h>
7
8#include <toolbox/api_lock.h>
9#include <assets_icons.h>
10
11#include "views/power_off.h"
12#include "views/power_unplug_usb.h"
13
14typedef enum {
15 PowerStateNotCharging,
16 PowerStateCharging,
17 PowerStateCharged,
18} PowerState;
19
20struct Power {
21 ViewHolder* view_holder;
22 FuriPubSub* event_pubsub;
23 FuriEventLoop* event_loop;
24 FuriMessageQueue* message_queue;
25
26 ViewPort* battery_view_port;
27 PowerOff* view_power_off;
28 PowerUnplugUsb* view_power_unplug_usb;
29
30 PowerEvent event;
31 PowerState state;
32 PowerInfo info;
33
34 bool battery_low;
35 bool show_battery_low_warning;
36 bool is_otg_requested;
37 uint8_t battery_level;
38 uint8_t power_off_timeout;
39};
40
41typedef enum {
42 PowerViewOff,
43 PowerViewUnplugUsb,
44} PowerView;
45
46typedef enum {
47 PowerMessageTypeShutdown,
48 PowerMessageTypeReboot,
49 PowerMessageTypeGetInfo,
50 PowerMessageTypeIsBatteryHealthy,
51 PowerMessageTypeShowBatteryLowWarning,
52 PowerMessageTypeSwitchOTG,
53} PowerMessageType;
54
55typedef struct {
56 PowerMessageType type;
57 union {
58 PowerBootMode boot_mode;
59 PowerInfo* power_info;
60 bool* bool_param;
61 };
62 FuriApiLock lock;
GUI: main API.
Definition event_flag.c:14
Definition event_loop_i.h:77
Definition message_queue.c:16
Definition pubsub.c:14
Definition power.h:33
Definition power_i.h:20
Definition power.h:38
Definition power_i.h:55
Definition power_off.c:6
Definition power_unplug_usb.c:6
Definition view_holder.c:6
Definition view_port_i.h:11
GUI: ViewHolder API.