update for beta release
[framework/uifw/e17.git] / src / modules / battery / e_mod_main.h
1 #ifndef E_MOD_MAIN_H
2 #define E_MOD_MAIN_H
3
4 #ifdef HAVE_EEZE
5 # include <Eeze.h>
6 #else
7 # include <E_Hal.h>
8 #endif
9
10 typedef struct _Config       Config;
11
12 #define CHECK_NONE      0
13 #define CHECK_ACPI      1
14 #define CHECK_APM       2
15 #define CHECK_PMU       3
16 #define CHECK_SYS_ACPI  4
17
18 #define UNKNOWN 0
19 #define NOSUBSYSTEM 1
20 #define SUBSYSTEM 2
21
22 #define POPUP_DEBOUNCE_CYCLES  2
23
24 struct _Config
25 {
26    /* saved * loaded config values */
27    int              poll_interval;
28    int              alert;      /* Alert on minutes remaining */
29    int              alert_p;    /* Alert on percentage remaining */
30    int              alert_timeout;  /* Popup dismissal timeout */
31    int              suspend_below;  /* Suspend if batter drops below this level */
32    int              force_mode; /* force use of batget or hal */
33    /* just config state */
34    E_Module        *module;
35    E_Config_Dialog *config_dialog;
36    Eina_List       *instances;
37    E_Menu          *menu;
38    Ecore_Exe           *batget_exe;
39    Ecore_Event_Handler *batget_data_handler;
40    Ecore_Event_Handler *batget_del_handler;
41    Ecore_Timer         *alert_timer;
42    int                  full;
43    int                  time_left;
44    int                  time_full;
45    int                  have_battery;
46    int                  have_power;
47 #ifdef HAVE_EEZE
48    Eeze_Udev_Watch     *acwatch;
49    Eeze_Udev_Watch     *batwatch;
50 #endif
51 #if defined HAVE_EEZE || defined __OpenBSD__
52    Eina_Bool            fuzzy;
53    int                  fuzzcount;
54 #else
55    struct {
56       // FIXME: on bat_conf del dbus_pending_call_cancel(dbus.have);
57       //        then set dbus.have to NULL
58       DBusPendingCall       *have;
59       // FIXME: on bat_conf del e_dbus_signal_handler_del() these
60       E_DBus_Signal_Handler *dev_add;
61       E_DBus_Signal_Handler *dev_del;
62    } dbus;
63 #endif
64 };
65
66 typedef struct _Battery Battery;
67 typedef struct _Ac_Adapter Ac_Adapter;
68
69 struct _Battery
70 {
71    const char *udi;
72 #if defined HAVE_EEZE || defined __OpenBSD__
73    Ecore_Poller *poll;
74 #else
75    E_DBus_Signal_Handler *prop_change;
76    Eina_Bool can_charge:1;
77 #endif
78    Eina_Bool present:1;
79    Eina_Bool charging:1;
80 #if defined HAVE_EEZE || defined __OpenBSD__
81    double last_update;
82    double percent;
83    double current_charge;
84    double design_charge;
85    double last_full_charge;
86    double charge_rate;
87    double time_full;
88    double time_left;
89 #else
90    int percent;
91    int current_charge;
92    int design_charge;
93    int last_full_charge;
94    int charge_rate;
95    int time_full;
96    int time_left;
97    const char *type;
98    const char *charge_units;
99 #endif
100    const char *technology;
101    const char *model;
102    const char *vendor;
103    Eina_Bool got_prop:1;
104 #ifdef __OpenBSD__
105    int * mib;
106 #endif
107 };
108
109 struct _Ac_Adapter
110 {
111    const char *udi;
112 #ifndef HAVE_EEZE
113    E_DBus_Signal_Handler *prop_change;
114 #endif
115    Eina_Bool present:1;
116    const char *product;
117 #ifdef __OpenBSD__
118    int * mib;
119 #endif
120 };
121
122 Battery *_battery_battery_find(const char *udi);
123 Ac_Adapter *_battery_ac_adapter_find(const char *udi);
124 void _battery_device_update(void);
125 #ifdef HAVE_EEZE
126 /* in e_mod_udev.c */
127 int  _battery_udev_start(void);
128 void _battery_udev_stop(void);
129 /* end e_mod_udev.c */
130 #elif !defined __OpenBSD__
131 /* in e_mod_dbus.c */
132 int  _battery_dbus_start(void);
133 void _battery_dbus_stop(void);
134 /* end e_mod_dbus.c */
135 #else
136 /* in e_mod_openbsd.c */
137 int _battery_openbsd_start(void);
138 void _battery_openbsd_stop(void);
139 /* end e_mod_openbsd.c */
140 #endif
141
142 EAPI extern E_Module_Api e_modapi;
143
144 EAPI void *e_modapi_init     (E_Module *m);
145 EAPI int   e_modapi_shutdown (E_Module *m);
146 EAPI int   e_modapi_save     (E_Module *m);
147
148 E_Config_Dialog *e_int_config_battery_module(E_Container *con, const char *params __UNUSED__);
149     
150 void _battery_config_updated(void);
151 extern Config *battery_config;
152
153 #endif