lib/ukit/E_Ukit.h
Go to the documentation of this file.
00001 #ifndef E_UKIT_H 00002 #define E_UKIT_H 00003 00004 #include <Eina.h> 00005 #include <E_DBus.h> 00006 00013 #define E_UDISKS_BUS "org.freedesktop.UDisks" 00014 #define E_UDISKS_PATH "/org/freedesktop/UDisks" 00015 #define E_UDISKS_INTERFACE "org.freedesktop.UDisks.Device" 00016 00017 #define E_UPOWER_BUS "org.freedesktop.UPower" 00018 #define E_UPOWER_PATH "/org/freedesktop/UPower" 00019 #define E_UPOWER_INTERFACE "org.freedesktop.UPower.Device" 00020 00021 /* message return types */ 00022 00023 typedef struct E_Ukit_Property E_Ukit_Property; 00024 typedef struct E_Ukit_Properties E_Ukit_Properties; 00025 00026 struct E_Ukit_String_List_Return 00027 { 00028 Eina_List *strings; /* list of const char * */ 00029 }; 00030 00031 struct E_Ukit_Bool_Return 00032 { 00033 Eina_Bool boolean; 00034 }; 00035 00036 struct E_Ukit_UDI_Return 00037 { 00038 const char *udi; 00039 }; 00040 00041 struct E_Ukit_Capability 00042 { 00043 const char *udi; 00044 const char *capability; 00045 }; 00046 00047 typedef enum 00048 { 00049 E_UKIT_PROPERTY_TYPE_STRING, 00050 E_UKIT_PROPERTY_TYPE_INT, 00051 E_UKIT_PROPERTY_TYPE_UINT32, 00052 E_UKIT_PROPERTY_TYPE_UINT64, 00053 E_UKIT_PROPERTY_TYPE_INT64, 00054 E_UKIT_PROPERTY_TYPE_BOOL, 00055 E_UKIT_PROPERTY_TYPE_DOUBLE, 00056 E_UKIT_PROPERTY_TYPE_STRLIST 00057 } E_Ukit_Property_Type; 00058 00059 struct E_Ukit_Property 00060 { 00061 E_Ukit_Property_Type type; 00062 union 00063 { 00064 const char *s; 00065 int i; 00066 Eina_Bool b; 00067 double d; 00068 uint32_t u; 00069 uint64_t t; 00070 int64_t x; 00071 Eina_List *strlist; 00072 } val; 00073 }; 00074 00075 struct E_Ukit_Properties 00076 { 00077 Eina_Hash *properties; 00078 }; 00079 00080 typedef enum 00081 { 00082 E_UPOWER_BATTERY_UNKNOWN, 00083 E_UPOWER_BATTERY_LION, 00084 E_UPOWER_BATTERY_LPOLYMER, 00085 E_UPOWER_BATTERY_LIRONPHOS, 00086 E_UPOWER_BATTERY_LEAD, 00087 E_UPOWER_BATTERY_NICAD, 00088 E_UPOWER_BATTERY_METALHYDRYDE 00089 } E_UPower_Battery_Type; 00090 00091 typedef enum 00092 { 00093 E_UPOWER_STATE_UNKNOWN, 00094 E_UPOWER_STATE_CHARGING, 00095 E_UPOWER_STATE_DISCHARGING, 00096 E_UPOWER_STATE_EMPTY, 00097 E_UPOWER_STATE_FULL, 00098 E_UPOWER_STATE_PENDINGCHARGE, 00099 E_UPOWER_STATE_PENDINGDISCHARGE 00100 } E_Upower_State; 00101 00102 typedef enum 00103 { 00104 E_UPOWER_SOURCE_UNKNOWN, 00105 E_UPOWER_SOURCE_AC, 00106 E_UPOWER_SOURCE_BATTERY, 00107 E_UPOWER_SOURCE_UPS, 00108 E_UPOWER_SOURCE_MONITOR, 00109 E_UPOWER_SOURCE_MOUSE, 00110 E_UPOWER_SOURCE_KEYBOARD, 00111 E_UPOWER_SOURCE_PDA, 00112 E_UPOWER_SOURCE_PHONE 00113 } E_Upower_Source; 00114 00115 00116 typedef struct E_Ukit_Properties E_Ukit_Get_All_Properties_Return; 00117 typedef struct E_Ukit_Property E_Ukit_Get_Property_Return; 00118 typedef struct E_Ukit_String_List_Return E_Ukit_String_List_Return; 00119 typedef struct E_Ukit_String_List_Return E_Ukit_Get_All_Devices_Return; 00120 00121 typedef struct E_Ukit_UDI_Return E_Ukit_Device_Added; 00122 typedef struct E_Ukit_UDI_Return E_Ukit_Device_Removed; 00123 typedef struct E_Ukit_Capability E_Ukit_New_Capability; 00124 00125 #ifdef __cplusplus 00126 extern "C" { 00127 #endif 00128 00129 EAPI int e_ukit_init(void); 00130 EAPI int e_ukit_shutdown(void); 00131 00132 EAPI DBusPendingCall *e_udisks_get_property(E_DBus_Connection *conn, const char *udi, const char *property, E_DBus_Callback_Func cb_func, void *data); 00133 EAPI DBusPendingCall *e_udisks_get_all_properties(E_DBus_Connection *conn, const char *udi, E_DBus_Callback_Func cb_func, void *data); 00134 EAPI DBusPendingCall *e_udisks_get_all_devices(E_DBus_Connection *conn, E_DBus_Callback_Func cb_func, void *data); 00135 00136 EAPI DBusPendingCall *e_upower_get_property(E_DBus_Connection *conn, const char *udi, const char *property, E_DBus_Callback_Func cb_func, void *data); 00137 EAPI DBusPendingCall *e_upower_get_all_properties(E_DBus_Connection *conn, const char *udi, E_DBus_Callback_Func cb_func, void *data); 00138 EAPI DBusPendingCall *e_upower_get_all_devices(E_DBus_Connection *conn, E_DBus_Callback_Func cb_func, void *data); 00139 00140 EAPI DBusPendingCall * e_upower_suspend_allowed(E_DBus_Connection *conn, E_DBus_Callback_Func cb_func, void *data); 00141 EAPI DBusPendingCall * e_upower_suspend(E_DBus_Connection *conn, E_DBus_Callback_Func cb_func, void *data); 00142 EAPI DBusPendingCall * e_upower_hibernate(E_DBus_Connection *conn, E_DBus_Callback_Func cb_func, void *data); 00143 EAPI DBusPendingCall * e_upower_hibernate_allowed(E_DBus_Connection *conn, E_DBus_Callback_Func cb_func, void *data); 00144 00145 /* utility functions */ 00146 EAPI void e_ukit_property_free(E_Ukit_Property *prop); 00147 EAPI const char *e_ukit_property_string_get(E_Ukit_Properties *properties, const char *key, int *err); 00148 EAPI Eina_Bool e_ukit_property_bool_get(E_Ukit_Properties *properties, const char *key, int *err); 00149 EAPI int e_ukit_property_int_get(E_Ukit_Properties *properties, const char *key, int *err); 00150 EAPI uint32_t e_ukit_property_uint32_get(E_Ukit_Properties *properties, const char *key, int *err); 00151 EAPI uint64_t e_ukit_property_uint64_get(E_Ukit_Properties *properties, const char *key, int *err); 00152 EAPI int64_t e_ukit_property_int64_get(E_Ukit_Properties *properties, const char *key, int *err); 00153 EAPI double e_ukit_property_double_get(E_Ukit_Properties *properties, const char *key, int *err); 00154 EAPI const Eina_List *e_ukit_property_strlist_get(E_Ukit_Properties *properties, const char *key, int *err); 00155 00156 /* (un)mount */ 00157 EAPI DBusPendingCall *e_udisks_volume_mount(E_DBus_Connection *conn, const char *udi, const char *fstype, Eina_List *options); 00158 EAPI DBusPendingCall *e_udisks_volume_unmount(E_DBus_Connection *conn, const char *udi, Eina_List *options); 00159 EAPI DBusPendingCall *e_udisks_volume_eject(E_DBus_Connection *conn, const char *udi, Eina_List *options); 00160 00161 #ifdef __cplusplus 00162 } 00163 #endif 00164 00169 #endif