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
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;
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
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
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